sql server计算两个日期之间差值的datediff()函数
SQL Server中提供了一个DATEDIFF()函数用来计算两个日期之间的差值。
DATEDIFF(datepart, startdate, enddate)
其中,datepart参数表示要计算差值的部分,startdate参数表示要计算差值的开始日期(被减数),enddate参数表示要计算差值的结束日期(减数)。
SELECT DATEDIFF(day, '2019-05-20', '2019-05-22'); -- 2
datepart参数提供了多个候选值,方便计算各个日期部分的差值。
datepart | 缩写 | 全称 |
---|---|---|
年 | yy, yyyy | year |
季度 | qq, q | quarter |
月 | mm, m | month |
年中的日 | dy, y | dayofyear |
日 | dd, d | day |
周 | wk, ww | week |
星期 | dw, w | weekday |
小时 | hh | hour |
分钟 | mi, n | minute |
秒 | ss, s | second |
毫秒 | ms | millisecond |
微妙 | mcs | microsecond |
纳秒 | ns | nanosecond |
这里的精度从上往下依次提高,精度越大,时间范围应该设置的越小,否则会报【[S0000][535] datediff 函数导致溢出。用于分隔两个日期/时间实例的日期部分的数字太大。请尝试使用日期部分精度较低的 datediff。】这样的错误。
SELECT DATEDIFF(yy, '2019-05-20', '2020-05-22'); -- 1
另外,如果要计算差值的开始日期和要计算差值的结束日期中,指定的计算部分为开始日期大于结束日期,则返回结果是负数。
SELECT DATEDIFF(yy, '2023-05-20', '2020-05-22'); -- -3
"因为经历过了,所以才波澜不惊。"
你要去做一个大人,不要回头,不要难过。