2012-09-19 64 views
0

我有包含不良日期,如[02/02/0200]的平面文件。我想導出數據到sql table.I使用條件拆分或派生列轉換日期列。在ssis條件拆分轉換檢查日期格式

我想正確的日期去主表和錯誤行去錯誤表。

請讓我知道我有什麼表達式用於日期列。

感謝, Jeetesh加爾格

回答

0

當您轉換您的日期[02/02/0200]這會是200年02月02日。 所以你需要消除無意義的日期。這將消除低於2000年的日期。

(DT_DATE)([YourDate]) > (DT_DATE)(2000 - 01 - 01) 

行,所以新的派生列聲明(bccPostDate - 數據類型爲「Unicode字符串」):

((DT_I4)(SUBSTRING(bccPostDate,1,2))) > 12 || ((DT_I4)(SUBSTRING(bccPostDate,4,2))) > 31 || ((DT_I4)(SUBSTRING(bccPostDate,7,4))) < 1900 ? "" : bccPostDate 

是工作我已經有多年嘗試和本聲明與「Unicode字符串」數據返回列類型。

+0

謝謝......我在Derived列中傳遞了下面的表達式,它正在工作YEAR((dt_date)bccPostDate)<1900 || MONTH((dt_date)bccPostDate)> 12 || DAY((dt_date)bccPostDate)> 31? 「」:bccPostDate – Jeetesh

+0

更新回答,我認爲你的日期是這種格式mm/dd/yyyy如果你的日期格式是dd/mm/yyyy,你需要改變12到31和31到12 :) – Justin