2016-07-21 93 views
0

我有一個帶有「日期」列的平面文件。問題是,日期可能進來作爲有條件拆分的SSIS檢查日期格式

01-Jan-16

01Jan2016 

如果我在一個派生列

(DT_DBDATE)(SUBSTRING(bene_dob,1,2) + "-" + SUBSTRING(bene_dob,3,3) + "-" + SUBSTRING(bene_dob,7,4)) 

它處理第二日運行良好這一點,但真的砸了第一日期。

我想通過條件拆分來處理這個問題,但我不知道如何繼續。

如何在條件拆分中驗證日期格式?

或者如果您有其他建議,我願意接受。

由於

回答

0

用派生列之前的空字符串替換破折號,以便所有行將具有相同的格式(01Jan2016)。如果缺失,您還需要添加一年的前兩位數字。

或者如果你真的想要使用條件拆分,只需測試連字符的存在和拆分是基於它是否在字符串中。

+0

感謝這是迄今爲止最簡單的方法。 – gnixon14

0

一個快速和骯髒的方法是正常化日期列,所以剝離它不想要的字符(「 - 」在這種情況下),然後應用像這樣派生列表達式:

(DT_DBDATE)(SUBSTRING(REPLACE(bene_dob, "-", ""),1,2) + "-" + SUBSTRING(REPLACE(bene_dob, "-", ""),3,3) + "-" + SUBSTRING(REPLACE(bene_dob, "-", ""),7,4)) 
0

在進一步處理之前,我會將所有日期格式轉換爲相同的格式,可以通過sql或ssis中的數據轉換來完成。