SQL Server常用的日期和時(shí)間函數(shù)梳理
今天給大家分享SQLServer常用的日期和時(shí)間函數(shù)相關(guān)的知識,希望對大家能有所幫助!
1、DATEADD(datepart,number,date)
作用:返回給指定日期加一個(gè)時(shí)間間隔后新的datetime值
參數(shù)說明:
datepart:指定為日期的哪部分增加數(shù)值。
常用的值有:年(yy/yyyy),季度(qq/q),月份(mm/m),日(day/dd/d),周(wk/ww),小時(shí)(hh),分鐘(mi,n),秒(ss/s)。
number:指定要增加的數(shù)值。如果是非整數(shù)將會(huì)舍去小數(shù)部分。負(fù)數(shù)表示減去相應(yīng)的時(shí)間間隔。
date:表示要處理的日期。
用法:
- -- 在指定日期上加三個(gè)月
- select DATEADD(mm,3,'2020-12-30');
- -- 指定日期減一天
- select DATEADD(day,-1,'2020-12-30');
2、DATEDIFF(datepart,startdate,enddate)
作用:指定兩個(gè)時(shí)間相差的時(shí)間數(shù)。比如天、小時(shí)、分鐘等等。
參數(shù)說明:
datepart:指定返回的日期時(shí)間維度(天、小時(shí)、分鐘)。
常用的值有:年(yy/yyyy),季度(qq/q),月份(mm/m),日(day/dd/d),周(wk/ww),小時(shí)(hh),分鐘(mi,n),秒(ss/s)。
startdate:可以理解被減數(shù)。
enddate:可以理解減數(shù)。如果startdate大于enddate返回負(fù)值。
用法:
- SELECT DATEDIFF(day,'2021-02-05','2021-02-09') AS DiffDate --返回 4天
3、DATENAME(deatpart,date)
作用:返回指定日期的指定部分的字符串。
參數(shù)說明:
datepart:指定返回的日期時(shí)間維度(天、小時(shí)、分鐘)。
常用的值有:年(yy/yyyy),季度(qq/q),月份(mm/m),日(day/dd/d),周(wk/ww),小時(shí)(hh),分鐘(mi,n),秒(ss/s)。
date:日期表達(dá)式
用法:
- DateName(quarter,GetDate()) as '第幾季度'
- DateName(week,GetDate()) as '一年中的第幾周'
- DateName(DAYOFYEAR,GetDate()) as '一年中的第幾天'
- DateName(year,GetDate()) as '年'
- DateName(month,GetDate()) as '月'
- DateName(day,GetDate()) as '日'
- DateName(hour,GetDate()) as '時(shí)'
- DateName(minute,GetDate()) as '分'
- DateName(second,GetDate()) as '秒'
4、DATEPART(deatpart,date)
返回指定日期中指定部分的整數(shù)。用法和DATENAME相似,返回值為整數(shù)。比如:
- SELECT DATEPART(weekday,'20210209') --返回值為2
- SELECT DateName(weekday,'20210209') --返回值為星期二
5、DAY|MONTH|YEAR 函數(shù)
作用:返回指定日期所在 日/月/年的部分??梢杂肈ATEPART替換。
用法:
- SELECT DAY('2021-02-09') --返回 9
- SELECT MONTH('2021-02-09') --返回 2
- SELECT YEAR('2021-02-09') --返回 2021
6、EOMONTH(input[,month_to_add])
作用:該函數(shù)是在SQLServer 2012中引入的。EOMONTH函數(shù)用來返回指定日期之前或之后某個(gè)月的最后一天的日期。
語法結(jié)構(gòu):=EOMONTH(開始日期,指定起始日期前后的月份)
用法:
- DECLARE @date DATETIME = '2021-02-09';
- SELECT EOMONTH ( @date,7) AS Result; --加七個(gè)月的月末日期 2021-09-30
- SELECT EOMONTH ( @date,-2) AS Result; -- 減兩個(gè)月的月末日期 2020-12-31
7、FROMPARTS
作用:根據(jù)輸入的年、月、日參數(shù)生成一個(gè)日期值,并返回。
格式:DATEFROMPARTS(year,month,day)
參數(shù)說明:
year:輸入年份的整數(shù)值
month:輸入1~12之間的月份數(shù)
day:輸入年月所對應(yīng)的day整數(shù)值
注意:如果上面三個(gè)參數(shù),任意一個(gè)參數(shù)輸入null,則返回null。
用法:
- SELECT DATEFROMPARTS (2020,2,09) AS [生成日期數(shù)據(jù)]; --2020-02-09
8、GETDATE()
這個(gè)太常見了,就是獲取系統(tǒng)當(dāng)前時(shí)間。
- SELECT GETDATE() --返回結(jié)果 2021-02-09 08:28:11.307
9、GETUTCDATE()
返回當(dāng)前的UTC時(shí)間。國內(nèi)使用減八小時(shí)。
- SELECT GETUTCDATE() --返回結(jié)果 2021-02-09 00:29:21.710
【編輯推薦】