错误输出文本文件中的日期格式已更改

时间:2013-02-15 13:48:19

标签: sql-server sql-server-2005 ssis ssis-2005

我有一个使用SSIS 2005加载到SQL Server 2005的文件。

该文件有一个日期字段。值类似于'12/01/2010 16:38:51'

文件中的某些行是错误的,会被重定向到文本文件。但在文本文件中,日期将由SSIS更改为2010-01-12 16:38:51

无论如何只是将错误行重定向到文本文件而不做任何修改?

2 个答案:

答案 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正在做日期转换的事情。

无论如何,谢谢你的帮助。