1

在 Excel 中,当我将这些“常规”数字转换为日期时,我得到的数字与CONVERT()在 SQL Server 中的数字不同。数据来自导入。

General     Excel conversion to date       SQL Server conversion to datetime
37621       31-12-2002                     2003-01-02 00:00:00.000
39082       31-12-2006                     2007-01-02 00:00:00.000
39447       31-12-2007                     2008-01-02 00:00:00.000
etc.

如何通过 SQL Server 中的查询获得 Excel 中的真实日期?如前所述,我已经使用了CONVERT(datetime, [General]),但随后我得到了 SQL Server 转换为日期时间列中的结果。

4

1 回答 1

2

将 Excel 值转换为日期

Select DateAdd(DAY,General,'1899-12-30')
 From  YourTable

示范

Declare @YourTable Table ([General] int,[Excel conversion to date] varchar(50))
Insert Into @YourTable Values
 (37621,'31-12-2002')
,(39082,'31-12-2006')
,(39447,'31-12-2007')

Select *
      ,DateAdd(DAY,[General],'1899-12-30') 
from @YourTable

退货

General Excel conversion to date    (No column name)
37621   31-12-2002                  2002-12-31 00:00:00.000
39082   31-12-2006                  2006-12-31 00:00:00.000
39447   31-12-2007                  2007-12-31 00:00:00.000
于 2017-05-31T19:59:00.657 回答