学习目标:
sql server中的DATEDIFF()函数
学习内容:
DATEDIFF():用于计算两个日期的差值
语法:
DATEDIFF(datepart, startdate, enddate), 返回类型int
其中startdate 和 enddate 参数是合法的日期表达式。
datepart输入格式:
日期部分 | 缩写 | 备注 |
---|---|---|
year | yy,yyyy | 年 |
quarter | qq,q | 季度 |
month | mm,m | 月 |
dayofyear | dy,y | 一年中的第几天 |
day | dd,d | 日 |
week | wk,ww | 一年中的第几周 |
weekday | dw | 星期几 |
Hour | hh | 小时 |
minute | mi,n | 分钟 |
second | ss,s | 秒 |
millisecond | ms | 毫秒 |
mns | 微秒 | |
ns | 纳秒 |
示例代码:
select GETDATE() as '当前日期时间',
DATEDIFF(year,'2020-12-20 05:49:00',GetDate()) as '年数之差',
DATEDIFF(quarter,'2021-03-20 05:49:00',GetDate()) as '季度之差',
DATEDIFF(week,'2021-06-20 05:49:00',GetDate()) as '周数之差',
DATEDIFF(month,'2021-06-20 05:49:00',GetDate()) as '月分之差',
DATEDIFF(DAYOFYEAR,'2021-07-20 05:49:00',GetDate()) as '天数之差',
DATEDIFF(day,'2021-07-20 05:49:00',GetDate()) as '天数之差1',
DATEDIFF(WEEKDAY,'2021-07-20 05:49:00',GetDate()) as '天数之差2',
DATEDIFF(hour,'2021-07-21 05:49:00',GetDate()) as '小时之差',
DATEDIFF(minute,'2021-07-21 05:49:00',GetDate()) as '分钟之差',
DATEDIFF(second,'2021-07-21 05:49:00',GetDate()) as '秒数之差',
DATEDIFF(MILLISECOND,'2021-07-21 05:49:00',GetDate()) as '豪秒之差'
说明:
- 比较的日期之差,只看填写的datepart对应值的差值。如:DATEDIFF(year,‘2020-01-01 05:49:00’,‘2020-12-31 05:49:00’)的输出为0,DATEDIFF(year,‘2020-12-31 05:49:00’,‘2021-01-01 05:49:00’)的输出为1,其他的同样规则。
- 返回可以是负数。
select DATEDIFF(year,'2020-12-20 05:49:00','2011-12-21 05:49:00')
输出为-9。 - datepart为DAYOFYEAR、day、weekday,计算的都是两个日期之间天数之差
- 计算秒、毫秒等很小的时间单位时,应避免两个日期相隔很大,否则会报错(datediff 函数导致溢出)。其中溢出值为milliseconds 24 天、seconds 68 年、minutes 4083 年、others 没有溢出限制。
以下部分示例:
SELECT datediff( hour, '4:00AM', '5:50AM' )
返回1
SELECT datediff( day, '00:00', '23:59' )
返回0
学习时间:
2021-07-21、2021-07-22
总结
附:学习记录,方便查看
今天的文章SQL-DATEDIFF()分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/32530.html