我使用數據流任務將Excel數據插入到SQL中,但是它將Excel中的日期字段設置爲SQL中的nvarchar字段。如何將存儲爲nvarchar的Excel日期轉換爲SQL?
我對數據庫做了很多改變。在這一點上不能截斷和重新加載數據。
例如,excel中的4/19/2013在SQL中轉換爲41383。
是否有可能將此轉換爲此時的日期?
我使用數據流任務將Excel數據插入到SQL中,但是它將Excel中的日期字段設置爲SQL中的nvarchar字段。如何將存儲爲nvarchar的Excel日期轉換爲SQL?
我對數據庫做了很多改變。在這一點上不能截斷和重新加載數據。
例如,excel中的4/19/2013在SQL中轉換爲41383。
是否有可能將此轉換爲此時的日期?
的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中)。
假設的SQL Server:
Declare @N int = 42515
Select DateAdd(DAY,@N,'1899-12-30')
返回2016年5月25日
你正在使用什麼版本的SQL(MySQL,SQL Server等)? –