我有一个使用SSIS 2005加载到SQL Server 2005的文件。
该文件有一个日期字段。值类似于'12/01/2010 16:38:51'
。
文件中的某些行是错误的,会被重定向到文本文件。但在文本文件中,日期将由SSIS更改为2010-01-12 16:38:51
。
无论如何只是将错误行重定向到文本文件而不做任何修改?
答案 0 :(得分:0)
您始终可以使用派生列并使用日期部分格式化日期时间。
(DT_WSTR, 20) (DT_WSTR, 2) RIGHT("0" + (DT_WSTR,2)MONTH(<DATE_IN_QUESTION>),2) + "/" +
(DT_WSTR, 2) RIGHT("0" + (DT_WSTR,2)DAY(<DATE_IN_QUESTION>),2) + "/" +
(DT_WSTR,4)YEAR(<DATE_IN_QUESTION>) + " " +
(DT_WSTR, 2)DATEPART( "Hh", <DATE_IN_QUESTION>) + ":" +
(DT_WSTR, 2)DATEPART( "mi", <DATE_IN_QUESTION>) + ":" +
(DT_WSTR, 2) RIGHT("0" + (DT_WSTR, 2)DATEPART( "ss", <DATE_IN_QUESTION>),2)
答案 1 :(得分:0)
我发现平面文件源的高级编辑器的平面文件错误输出中的输出列是“平面文件源错误输出列”(默认情况下列的类型应该是文本流[DT_TEXT])然后我的问题解决了。这样,错误输出的平面文件管理器将自动将输出列设置为“平面文件源错误输出列”和“文本流[DT_TEXT]”类型。这正是我想要的。 SSIS将整行视为“文本流[DT_TEXT]”类型的单个列,并且只是重定向。这似乎是SSIS的默认行为。但是在我的原始包中,我以某种方式搞砸了,让输入中的每一列映射到错误输出中的一列。然后有问题,因为SSIS正在做日期转换的事情。
无论如何,谢谢你的帮助。