我有一个带有日期列的平面文件。它采用ISO 8601日期时间标准格式化。
格式如下所示:2013-10-28T10:23:01.000Z
如何将其转换为datetimestamp格式?我使用了“派生列”,但我没有找到类型转换。
答案 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