SSIS:将ISO 8601字符串转换为日期时间列
我有一个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的建议,我设法让它起作用。 –
用您正在使用的数据库标记您的问题。 –