试图计算自1900年1月1日以来的天数,并且DateDiff函数关闭

时间:2019-05-21 15:24:02

标签: sql-server datediff

我正在尝试计算1900年1月1日至2019年5月1日之间经过的天数。

我尝试使用多个日期进行此操作,并得出相同的结果。 返回的值是2天的休假时间。

--
-- calculate the number of days between 1/1/1900 and 5/1/2018
--
SELECT DATEDIFF(DAY,CONVERT(DATE,'1/1/1900'),CONVERT(DATE,'5/1/2018'))

预期结果:43221   实际结果:43219

谢谢您的帮助!

1 个答案:

答案 0 :(得分:2)

DATEDIFF返回两个日期之间 的天数。因此,如果您希望将1900-01-01编号为第1天,则必须将从DATEDIFF得到的任何差额加1。在Excel中,第0天是1899-12-31。

第二,Excel将1900年作为a年,并具有1900年2月29日(Excel编号系统iirc中的第60天)。这是Lotus 1-2-3的遗留物,它最初使用简化的算法计算leap年(每年将其除以4可除以as年),并保持向后兼容

如果将这两个故障合并在一起,则这些会导致您的结果被二偏。