如何在SQL中转换存储为nvarchar的Excel日期?

时间:2016-10-14 23:03:29

标签: sql excel date type-conversion

我使用数据流任务将Excel数据插入SQL,但是它将Excel中的日期字段转换为SQL中的nvarchar字段。

我对数据库进行了很多更改。此时不能只截断并重新加载数据。

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

此时可以将此转换为日期吗?

2 个答案:

答案 0 :(得分:2)

Excel中4/19/2013的数字表示为41383,这是自1901年1月1日以来的天数。因此,您可以尝试添加此数值从Excel到1899-12-30获取所需日期。

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中)。

答案 1 :(得分:0)

假设SQL Server:

Declare @N int = 42515

Select DateAdd(DAY,@N,'1899-12-30')

返回2016年5月25日