SQLServer常用的日期和时间函数梳理

时间:2021-05-02

今天给大家分享SQLServer常用的日期和时间函数相关的知识,希望对大家能有所帮助!

1、DATEADD(datepart,number,date)

作用:返回给指定日期加一个时间间隔后新的datetime值

参数说明:

datepart:指定为日期的哪部分增加数值。

常用的值有:年(yy/yyyy),季度(qq/q),月份(mm/m),日(day/dd/d),周(wk/ww),小时(hh),分钟(mi,n),秒(ss/s)。

number:指定要增加的数值。如果是非整数将会舍去小数部分。负数表示减去相应的时间间隔。

date:表示要处理的日期。

用法:

--在指定日期上加三个月

selectDATEADD(mm,3,'2020-12-30');

--指定日期减一天

selectDATEADD(day,-1,'2020-12-30');

2、DATEDIFF(datepart,startdate,enddate)

作用:指定两个时间相差的时间数。比如天、小时、分钟等等。

参数说明:

datepart:指定返回的日期时间维度(天、小时、分钟)。

常用的值有:年(yy/yyyy),季度(qq/q),月份(mm/m),日(day/dd/d),周(wk/ww),小时(hh),分钟(mi,n),秒(ss/s)。

startdate:可以理解被减数。

enddate:可以理解减数。如果startdate大于enddate返回负值。

用法:

SELECTDATEDIFF(day,'2021-02-05','2021-02-09')ASDiffDate--返回4天

3、DATENAME(deatpart,date)

作用:返回指定日期的指定部分的字符串。

参数说明:

datepart:指定返回的日期时间维度(天、小时、分钟)。

常用的值有:年(yy/yyyy),季度(qq/q),月份(mm/m),日(day/dd/d),周(wk/ww),小时(hh),分钟(mi,n),秒(ss/s)。

date:日期表达式

用法:

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'时'

DateName(minute,GetDate())as'分'

DateName(second,GetDate())as'秒'

4、DATEPART(deatpart,date)

返回指定日期中指定部分的整数。用法和DATENAME相似,返回值为整数。比如:

SELECTDATEPART(weekday,'20210209')--返回值为2

SELECTDateName(weekday,'20210209')--返回值为星期二

5、DAY|MONTH|YEAR 函数

作用:返回指定日期所在 日/月/年的部分。可以用DATEPART替换。

用法:

SELECTDAY('2021-02-09')--返回9

SELECTMONTH('2021-02-09')--返回2

SELECTYEAR('2021-02-09')--返回2021

6、EOMONTH(input[,month_to_add])

作用:该函数是在SQLServer 2012中引入的。EOMONTH函数用来返回指定日期之前或之后某个月的最后一天的日期。

语法结构:=EOMONTH(开始日期,指定起始日期前后的月份)

用法;

DECLARE@dateDATETIME='2021-02-09';

SELECTEOMONTH(@date,7)ASResult;--加七个月的月末日期2021-09-30

SELECTEOMONTH(@date,-2)ASResult;--减两个月的月末日期2020-12-31

7、FROMPARTS

作用:根据输入的年、月、日参数生成一个日期值,并返回。

格式:DATEFROMPARTS(year,month,day)

参数说明:

year:输入年份的整数值

month:输入1~12之间的月份数

day:输入年月所对应的day整数值

注意:如果上面三个参数,任意一个参数输入null,则返回null。

用法:

SELECTDATEFROMPARTS(2020,2,09)AS[生成日期数据];--2020-02-09

8、GETDATE()

这个太常见了,就是获取系统当前时间。

SELECTGETDATE()--返回结果2021-02-0908:28:11.307

9、GETUTCDATE()

返回当前的UTC时间。国内使用减八小时。

SELECTGETUTCDATE()--返回结果2021-02-0900:29:21.710

原文地址:https://www.toutiao.com/a6927441726432969223/

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章