我有一個CSV Falt文件,我試圖使用SSIS導入。日期字符串的格式爲20170215T000002 - 這看起來像ISO 8601,所以我很確定我應該能夠將其映射到SQL中的列類型datetime,但我失去了所有的時間數據和只是得到日期組件(正確解析)。SSIS:將ISO 8601字符串轉換爲日期時間列
有關如何在SQL中將此文本元素轉換爲datetime格式的任何建議?
我有一個CSV Falt文件,我試圖使用SSIS導入。日期字符串的格式爲20170215T000002 - 這看起來像ISO 8601,所以我很確定我應該能夠將其映射到SQL中的列類型datetime,但我失去了所有的時間數據和只是得到日期組件(正確解析)。SSIS:將ISO 8601字符串轉換爲日期時間列
有關如何在SQL中將此文本元素轉換爲datetime格式的任何建議?
假設日期列名是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"))
這對我有用。謝謝! –
我認爲ISO 8601有分號的冒號。
假設你正在使用SQL Server,這應該工作:
select convert(datetime,
stuff(stuff(col, 14, 0, ':'), 12, 0, ':'),
126)
它看起來確實如此,但是使用上面的@Hadi的建議,我設法讓它起作用。 –
用您正在使用的數據庫標記您的問題。 –