[英]SSIS Check date format with conditional split
我有一個帶有“日期”列的平面文件。 問題是日期可能會輸入
01-Jan-16
或
01Jan2016
如果我在派生列中運行
(DT_DBDATE)(SUBSTRING(bene_dob,1,2) + "-" + SUBSTRING(bene_dob,3,3) + "-" + SUBSTRING(bene_dob,7,4))
它可以很好地處理第二個日期,但實際上會弄亂第一個日期。
我正在嘗試通過條件拆分來解決此問題,但是我不確定如何繼續。
如何驗證條件拆分中的日期格式?
或者,如果您有其他建議,我歡迎您提出意見。
謝謝
一種快速而骯臟的方法是對日期列進行規范化 ,因此將其除去不需要的字符(在這種情況下為“-”),然后應用派生的列表達式,如下所示:
(DT_DBDATE)(SUBSTRING(REPLACE(bene_dob, "-", ""),1,2) + "-" + SUBSTRING(REPLACE(bene_dob, "-", ""),3,3) + "-" + SUBSTRING(REPLACE(bene_dob, "-", ""),7,4))
在派生列之前用空字符串替換破折號,以便所有行都具有相同的格式(01Jan2016)。 如果缺少年份的前兩位數字,則還需要添加它們。
或者,如果您真的想使用條件拆分,則只需測試是否存在連字符,然后根據是否在字符串中進行拆分。
在進行進一步處理之前,我將所有日期格式轉換為相同格式,可以通過sql或sis中的數據轉換來完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.