“0”到日期,派生列

时间:2014-06-23 12:23:53

标签: ssis

我有一个平面文件,它以str(固定delimeted)形式出现,包含如下数据:“20130505”或“0”(只有一位数)。我的目的地必须是约会。我通过派生列创建子字符串并将日期转换为如下所示:

(2013-04-05):
ISNULL(FIELD_1519_Out) ? (DT_DBDATE)(SUBSTRING(FIELD_1519,1,4) + "-" + 
SUBSTRING(FIELD_1519,5,2) + "-" + SUBSTRING(FIELD_1519,7,2)) : (DT_DBDATE)
(SUBSTRING(FIELD_1519_Out,1,4) + "-" + SUBSTRING(FIELD_1519_Out,5,2) + "-" + 
SUBSTRING(FIELD_1519_Out,7,2)).

我的问题是如何将“0”转换为请求的长度才能将其转换为日期?由于只有一个数字 - “0”'我不能继续使用相同的逻辑子串。

由于

1 个答案:

答案 0 :(得分:0)

请参阅下面的示例,这可能会对您有所帮助。我的源数据如下所示。[yourDate]列是VARCHAR(8)

enter image description here

我开发了一个SSIS包,如下所示。数据查看器的输出是专用列提供的内容。

enter image description here

派生列内容。

(DT_STR,8,1252)RIGHT(("0000000" + yourDate),8)

你在DFT中使用这样的派生列。我仍然不确定,这是否是你要找的,