无论验证方法如何,为什么SSIS日期转换失败

时间:2013-12-08 08:03:20

标签: ssis

我在文本文件中有一列,其日期如下:20131207。 我试图将这个日期转换成这样但我尝试过的所有内容都失败了。

这是我的代码:我已多次修改它以解决此问题。

(LEN(TRIM(MyDate)) < 8) || (TRIM(MyDate) == " ") || 
(ISNULL(MyDate)) ? NULL(DT_DBDATE) : 
(DT_DBDATE)(SUBSTRING(TRIM(MyDate),1,4) + "-" + 
SUBSTRING(TRIM(MyDate),5,2) + "-" + SUBSTRING(TRIM(MyDate),7,2))

我哪里错了?

我在 Flat Source Task 中检查了保留空值。

更新:以下是错误消息:

The conditional operation failed.
The "Rename Columns (My_Table)" failed because error code 0xC0049063 occurred, 
and the error row disposition on "Rename Columns (My_Table).Outputs[Derived 
Column Output].Columns[MyDate]" specifies failure on error. An error occurred 
on the specified object of the specified component.  There may be error 
messages posted before this with more information about the failure.

我需要将文本文件中的数据转换为日期,从20131207转换为2013-12-07但是如果文本文件中的数据长度小于8或者不能,则我想插入null转换为日期。

2 个答案:

答案 0 :(得分:1)

试试这个:

添加一个新的平面文件源,然后添加一个派生列,然后在表达式中执行此操作

 `LEFT(date,4) + "-" + SUBSTRING(date,5,2) + "-" + RIGHT(date,2)`

包裹:

enter image description here

输出如下:

enter image description here

答案 1 :(得分:0)

修剪(MyDate)==“”应修剪(MyDate)==“”