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中相同。