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

 

"因为经历过了,所以才波澜不惊。"


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM