我使用数据流任务将Excel数据插入SQL,但是它将Excel中的日期字段转换为SQL中的nvarchar字段。
我对数据库进行了很多更改。此时不能只截断并重新加载数据。
例如,excel中的4/19/2013在SQL中变为41383。
此时可以将此转换为日期吗?
答案 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日