在 Excel 工作表中,我将收到数据,然后我需要将其上传到 SQL Server,然后实现逻辑。
我收到了一个日期字段--[截止日期]
,编号为:-.40317
。在 Excel 中,如果右键单击它,然后将其格式设置为日期。它将显示正确的日期:19.05.2010
。
按原样上传文件后。我用过,
SELECT (dateAdd(day,[Due Date],'1900-01-01')) FROM table1.
假设 Excel 从 01-01-1900
开始计算天数。所以我添加了数字 --[Due Date]
这应该给我正确格式的日期..
但这会返回值 2010-05-21 00:00:00.000
。
您能否帮我看看,Excel 从 01-01-1900
开始计数的假设是否错误,或者我使用的程序给出这样的值是错误的。
最佳答案
我问了similar question不久前 - 它不是在谈论 Excel,而是在谈论 VB6,因此我并不是说这个问题是重复的。不过,我认为答案是一样的。
SQL 中的日期 0 是 01/01/1900。
VB6 中的日期 0 是 1899 年 12 月 30 日,比前 2 天早 - 这解释了其中的差异。
所以我相信 Excel 也是一样的。
在 Excel 中,我在单元格中输入 0 并将单元格格式设置为日期 - 显示(在我看来很奇怪)0/1/1900。我快速浏览了一下,找到了另一篇可以明确回答这个问题的引用资料,但还没有找到。
编辑:
提取问题中提供给我的链接(与 Excel 相关):
http://www.ozgrid.com/forum/showthread.php?t=46561
http://www.joelonsoftware.com/items/2006/06/16.html
关于sql - 将序列号转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674831/