在单元格31.10.2015
中的日期H9
的Excel中,如果我将公式放在其他单元格= H9+A
中,则会收到单元格42308A
。
在SQL Server中,我使用CONVERT(varchar, CONVERT(int, CONVERT(datetime, [Due Date])))
并获取42306
。
为什么我得到2的差异?
答案 0 :(得分:1)
我认为有两个原因。
Excel中序列号的第一个日期是1900-01-01。序列号为1. https://support.office.com/en-gb/article/DATEVALUE-function-df8b07d4-7761-4a93-bc33-b7471bbff252 在SQL中,此日期的数字编号为0而不是1.因此,它的差异为1。
第二个单位有点奇怪。在Excel中,日期1900-02-29具有序列号,即使该日期不存在(2月29日每4年存在一次,除了在世纪之交)。在SQL 1900-02-29中不存在(尝试执行此操作SELECT CONVERT(int, CONVERT(datetime, '19000229'))
)。因此,这说明了第二个单位差异。
答案 1 :(得分:0)
实际上,sql和excel之间的日期差异等于1.因此,在excel 01/01/1900
中等于1,相反,在sql 01/01/1900
中等于0.读取此{{3} }