【发布时间】:2014-05-20 12:33:53
【问题描述】:
我今天在 excel 中将日期时间转换为文本并使用它生成的数字在 SQL Server 中转换为日期时间时发现了一些非常奇怪的东西。
这有什么奇怪的?结果不同。准确地说是两天的差异。
我在 Excel 中假设今天的日期 (20/05/2014 dd/MM/yyyy ) 并得到 41779 作为文本结果。
我得到了文本值,我使用 SQL 转换为 datetime 来检索值作为日期,但我没有得到我想要的结果。
我什至用datetime2 进行了测试,但我发现我无法将int 转换为datetime2
我既不是 MS Excel 专家也不是 SQL Server 专家,但这是怎么回事?我可以通过 MS Excel 生成的数字并删除 2 来使其工作,但对我来说仍然没有意义。
【问题讨论】:
-
呵呵比较
Select Cast(0 as DateTime)与=DATEVALUE("1900-01-01")和find the one extra leap year -
相差 1,但为什么这些测试之间有两天的差异?
-
现在我看到了您的编辑,这很有意义。但真的是微软吗?该死。如果您可以将其发布为 awnser,我将标记为答案。谢谢。
-
技术上是正确的,这不是微软的错误。这是微软“继承”的 IBM 错误,并且意识到但希望能够转换 Lotus 电子表格,请参阅 better explanation
标签: sql sql-server excel datetime