使用DateDiff比较SQL Server中的两个日期

使用DateDiff比较SQL Server中的两个日期,sql,sql-server,database,Sql,Sql Server,Database,我曾尝试在SQL Server中使用datediff计算月数,但在计算时: Select DATEDIFF(Month,'1/1/2019','12/31/2019') select DATEDIFF(Month,'11/19/2019','11/18/2020') + 1 它返回11,因此我将值增加1,使之成为12。但当我计算时: Select DATEDIFF(Month,'1/1/2019','12/31/2019') select DATEDIFF(Month,'11/19/201

我曾尝试在SQL Server中使用
datediff
计算月数,但在计算时:

Select DATEDIFF(Month,'1/1/2019','12/31/2019')
select DATEDIFF(Month,'11/19/2019','11/18/2020') + 1
它返回11,因此我将值增加1,使之成为12。但当我计算时:

Select DATEDIFF(Month,'1/1/2019','12/31/2019')
select DATEDIFF(Month,'11/19/2019','11/18/2020') + 1

它返回13,这是错误的。

DATEDIFF
返回两个日期之间的“刻度”数。例如,
DATEDIFF(日期,'2020-01-20T23:59:59.999999','2020-01-21T00:00:00.0000000')
返回
1
即使两次之间只有0.0000001秒。但是DATEDIFF的结果(月份,'2019年11月19日','2020年11月18日')这就是为什么在2019年11月的日期和2020年11月的日期之间有12个这样的界限,但在同一年只有11个。你可能在找。@QaisAlmomany。这不是“错”。它完全按照文件记录的方式进行计算。你的问题不清楚,因为你没有解释为什么你认为这是错误的。您的两个示例也使用不同的日期,因此数字不同也就不足为奇了。