2016-10-14 96 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日

相關問題