如何转换在SQL中存储为nvarchar的Exceldate?

我使用了一个数据stream任务来将Excel数据插入到SQL中,但是它使得Excel中的date字段变成了SQL中的nvarchar字段。

我对数据库做了很多修改。 在这一点上不能截断和重新加载数据。

例如,excel中的4/19/2013在SQL中变成了41383。

现在有可能把它转换成date吗?

Excel中的数字表示forms为41383 ,这是自1901年1月1 以来的数。因此,您可以尝试从Excel中将这个数字值添加到1899-12-30以获得所需的值date。

SQL Server:

 DATEADD(d, 41383, '1899-12-30') 

MySQL的:

 DATE_ADD('1899-12-30', INTERVAL 41383 DAY) 

旁注:我们使用1899-12-30作为起点而不是1900-01-01的原因与Excel中的错误(不是SQL)有关。

假设SQL Server:

 Declare @N int = 42515 Select DateAdd(DAY,@N,'1899-12-30') 

返回5/25/2016