SSIS从ISO格式转换日期时间YYYY-MM-DDTHH:MM:SS.000Z

时间:2013-11-08 13:46:27

标签: datetime ssis typecast-operator

我有一个带有日期列的平面文件。它采用ISO 8601日期时间标准格式化。 格式如下所示:2013-10-28T10:23:01.000Z

如何将其转换为datetimestamp格式?我使用了“派生列”,但我没有找到类型转换。

1 个答案:

答案 0 :(得分:8)

我创建了一个示例包,添加了一个平面文件连接管理器并定义了我的两个数据类型为DT_I4和DT_DATE的列

rownum,eventdate
1,2013-10-28T10:23:01.000Z

然后我添加了一个带有平面文件源的数据流,选择了源文件,繁荣导入失败。由于最令人抓狂的错误,导入失败

  

数据转换失败。 “eventdate”列的数据转换返回状态值2和状态文本“由于可能丢失数据而无法转换该值。”。

如何将日期转换为日期?设计决策是尽可能友好地导入数据。这意味着人们使用理智的,基于标准的,像datetime这样的事物的文本表示。但是美国的懒人可以使用01-02-05并将他们的数据解释为Jan 2, 2005,而英国的懒人可以让他们的Feb 1, 2005和日本人认为每个人都很生气,因为它显然Feb 5, 2001 1}}。

因此,地方性应该归咎于默认情况下,它会尝试超出您的源数据。那么解决方案就是告诉SSIS闭嘴并获取我的数据!

关闭并获取我的数据!

在数据流中,右键单击数据源并选择高级编辑器。在“输入输出属性”选项卡中,展开“输出列”,对于包含此良好数据的每个列,您需要将FastParse从其默认值设置为 True

FastParse