2016-10-14 69 views
0

我使用数据流任务将Excel数据插入到SQL中,但是它将Excel中的日期字段设置为SQL中的nvarchar字段。如何将存储为nvarchar的Excel日期转换为SQL?

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

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

是否有可能将此转换为此时的日期?

+0

你正在使用什么版本的SQL(MySQL,SQL Server等)? –

回答

2

4/19/2013数字表示是在Excel中,这是自1901大致1月1日,中41383。因此,您可以尝试从Excel中添加此数值作为天数到1899-12-30以获得您想要的日期。

SQL服务器:

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

MySQL的:

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

旁注:为什么我们使用1899-12-30为出发点,而不是1900-01-01原因与中的错误做Excel(不在SQL中)。

+0

有关Excel中的错误的有趣提示+1 –

+0

它的引入是否被认为是真的应该被视为一个错误? –

+0

,因为你解释了发生了什么,我永远不会忘记这个! – user3486773

0

假设的SQL Server:

Declare @N int = 42515 

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

返回2016年5月25日

相关问题