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

 

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

你可能感兴趣的:(sql server计算两个日期之间差值的datediff()函数)