Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime SSIS从ISO格式YYYY-MM-DDTHH:MM:SS.000Z转换日期时间_Datetime_Ssis_Typecast Operator - Fatal编程技术网

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

Datetime SSIS从ISO格式YYYY-MM-DDTHH:MM:SS.000Z转换日期时间,datetime,ssis,typecast-operator,Datetime,Ssis,Typecast Operator,我有一个带日期栏的平面文件。它使用ISO 8601日期时间标准格式化。 格式如下:2013-10-28T10:23:01.000Z 如何将其转换为datetimestamp格式?我使用了“派生列”,但没有找到类型转换。我创建了一个示例包,添加了一个平面文件连接管理器,并使用数据类型DT_I4和DT_DATE定义了我的两个列 rownum,eventdate 1,2013-10-28T10:23:01.000Z 然后,我添加了一个带有平面文件源的数据流,选择了源文件,导入失败。导入失败是因为出现

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


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

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

rownum,eventdate
1,2013-10-28T10:23:01.000Z
然后,我添加了一个带有平面文件源的数据流,选择了源文件,导入失败。导入失败是因为出现了最令人恼火的错误

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

如何将日期转换为日期?设计决策应尽可能友好地导入数据。这意味着,人们使用理智的、基于标准的、文本表示的日期时间之类的东西会受到影响。美国的懒惰者可以使用
01-02-05
并将其数据解释为
2005年1月2日
,而英国的懒惰吉特人可以使用
2005年2月1日
,日本人认为每个人都疯了,因为这显然是
2001年2月5日

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

闭嘴,已经拿走我的数据了! 在数据流中,右键单击数据源并选择高级编辑器。在“输入输出属性”选项卡中,展开输出列,对于包含这些良好数据的每一列,需要将
FastParse
从默认值false设置为True


谢谢,这就成功了。添加一些上下文:My(ISO 8601)DateTime字段看起来像
2019-05-12T03:13:22.000Z
T
Z
是可选的),DB中的目标列被定义为
datetime2(3)
(如果您没有/需要秒的分数,可以使用
datetime2(0)
);SSIS平面文件Con列的数据类型被简单地定义为
dtu DATE
,然后我使用了上面描述的
FastParse=True
选项。