2014-06-23 83 views
-1

我有一個平面文件,它以str(固定分隔符)形式出現,並且包含像這樣的數據:「20130505」或「0」(只有一個數字)。我的目的地必須是約會。我做串由派生列和改造喜歡這種日期:「0」到date -Ssis,派生列

(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」,我不能繼續使用相同的邏輯子字符串。

謝謝

+0

看來實現這個的方法是使用腳本組件而不是派生列,這樣你就可以利用提供的.Net工具來操縱日期時間並處理0。 –

+0

文件中的零代表什麼? – TMNT2014

+0

它代表目的地的日期字段,但是從源代碼來看它是str – Sam

回答

0

請參閱下面的示例,這可能對您有所幫助。我的源數據是如圖below.The柱[yourDate]是VARCHAR(8)

enter image description here

我如下開發的SSIS包。數據查看器的輸出是devive列給出的結果。

enter image description here

派生列的內容。

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

你在你的DFT.I使用這樣的派生列現在還不能確定,這是否是你在找什麼,