Excel和SQL Server之间的date差异计算

我正在使用Excel 2013和SQL Server 2014.我想知道为什么在计算相同date的date差异时得到两个不同的结果:

Excel中:

在这里输入图像说明

C2=IF(B2="",0,(DATE(YEAR(B2),MONTH(B2),DAY(B2))-DATE(YEAR(A2),MONTH(A2),DAY(A2)) + TIME(HOUR(B2),MINUTE(B2),SECOND(B2))-TIME(HOUR(A2),MINUTE(A2),SECOND(A2)))*24) 

SQL Server:

 --Ex 1: cast(datediff(MINUTE, '2015-11-04 13:38:20.000', '2015-11-04 16:15:00.000') as float) / 60 

结果:2.61666666666667

 --Ex 2: cast(datediff(MINUTE, '2015-11-04 13:38:20.000', '2015-11-04 16:15:00.000') as decimal(15, 5)) / 60 

结果:2.61666666

谢谢。

因为在你的SQL代码中,你只需要几分钟的时间就可以获得不同的结果。 在这种情况下,157分钟。 如果以秒为单位的差异,除以60,你会看到实际的差异是156.6666 …分钟。

尝试这个:

 SELECT cast(datediff(s, '2015-11-04 13:38:20.000', '2015-11-04 16:15:00.000') AS DECIMAL(38,18)) / 3600 

返回2.611111111111111111 ,与Excel中相同。