我有一个CSV falt文件我尝试使用SSIS导入。日期字符串的格式为 20170215T000002 - 这看起来像ISO 8601,因此我非常确定我应该能够将其映射到 datetime 列类型在SQL中,但我丢失了所有的时间数据,只是获取日期组件(正确解析)。
有关如何在SQL中将此文本元素转换为 datetime 格式的任何建议吗?
答案 0 :(得分:2)
假设日期列名称为inColumn
在DataflowTask中,添加脚本组件,将inColumn
标记为输入列,使用dataType DT_DBTIMESTAMP
outColumn
在脚本中,在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)