8

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

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

4

1 回答 1

13

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

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

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

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

日期如何不转换为日期?设计决定是对导入数据尽可能友好。这意味着人们使用理智的、基于标准的、文本表示的东西(如日期时间)会被淹没。美国的懒人虽然可以使用01-02-05并解释他们的数据,Jan 2, 2005但英国的懒人可以让他们Feb 1, 2005和日本人认为每个人都疯了,这很明显Feb 5, 2001

因此,默认情况下应归咎于局部性,它试图超越您的源数据。那么,解决方案就是告诉 SSIS 闭嘴并取走我的数据!

闭嘴,拿走我的数据!

在您的数据流中,右键单击您的数据源并选择高级编辑器。在 Input Output Properties 选项卡中,展开您的 Output Columns 并且对于包含此良好数据的每一列,您需要将FastParse其默认值 false 设置为True

快速解析

于 2013-11-08T16:15:23.963 回答