2017-03-05 153 views
2

我有一個CSV Falt文件,我試圖使用SSIS導入。日期字符串的格式爲20170215T000002 - 這看起來像ISO 8601,所以我很確定我應該能夠將其映射到SQL中的列類型datetime,但我失去了所有的時間數據和只是得到日期組件(正確解析)。SSIS:將ISO 8601字符串轉換爲日期時間列

有關如何在SQL中將此文本元素轉換爲datetime格式的任何建議?

+0

用您正在使用的數據庫標記您的問題。 –

回答

2

假設日期列名是inColumn

在DataflowTask,添加腳本組件,馬克inColumn作爲輸入列,添加新的輸出列outColumn with dataType DT_DBTIMESTAMP

在腳本中,在Input0_ProcessInputRow下使用DateTime.ParseExact功能如下:

Row.inColumn = DateTime.ParseExact(Row.inColumn,"yyyyMMddTHHmmss",New System.Globalization.CultureInfo("en-GB")) 
+1

這對我有用。謝謝! –

1

我認爲ISO 8601有分號的冒號。

假設你正在使用SQL Server,這應該工作:

select convert(datetime, 
       stuff(stuff(col, 14, 0, ':'), 12, 0, ':'), 
       126) 
+0

它看起來確實如此,但是使用上面的@Hadi的建議,我設法讓它起作用。 –

相關問題