我创建了一个SSIS包,其中数据从平面传输中获取并传输到数据库。
但这对于解释日期不一致具有令人困惑和搞笑的效果。 任何日期,当天大于该月的第12天都是正确的 解释为dd / mm / yyyy,但任何低于该值的都会倒退。
所以02/15/2012将在2012年2月15日正确阅读。
但02/09/2012很高兴被解释为2012年9月2日。
答案 0 :(得分:1)
这个问题很常见,我多次遇到过这种情况。
首先,检查您的SSIS区域设置是否未设置为美国。
您需要将其设置为英语(United Kindom)或荷兰语(荷兰)。
为此,请单击SSIS包中的任意位置并查看属性并设置LocaleID(在Misc下)。在Connection Manager中,选择flat_source_file Connection并在属性面板中编辑LocaleID。
如果这没有帮助,请执行以下操作:
我会将“平面文件源”中的源列设置为string
数据类型
然后使用“数据转换”转换将日期列投射为DT_DATE
或DT_DBDate
。
DT_DATE
是一个由年,月,日和小时组成的日期结构
DT_DBDATE
是一个由年,月和日组成的日期结构。
现在在目标窗口中使用新的转换列。