2016-09-19 36 views
0

我在平面文件中有一個日期列,格式爲DD-Mon-YY,需要將其轉換爲YYYY-MM-DD。這是我在表達轉換將DD-MON-YY轉換爲YYYY-MM-DD in informatica

IIF(IS_DATE(Event_Date,'DD-MON-YY'),TO_DATE(Event_Date,'YYYY-MM-DD'),NULL) 

有一個錯誤,無效的字符串格式使用了,由於,有沒有世紀輸入日期(26月 - 16)信息的原因表達。

幫助將不勝感激。

謝謝。

回答

0


您可以使用下面提供的簡單功能,

TO_DATE(TO_CHAR(Event_Date,'DD-MON-YYYY'),'YYYY-MM-DD') 

要了解更多關於Informatica的,有樂趣與此博客, http://etlinfromatica.wordpress.com/

+0

林沒有得到全年的一部分,繩26-SEP-16轉換爲YYYY-MM-DD – user2975559

+0

哪個是你的目標。它的平面文件或數據庫? –

+0

目標是一個teradata表,我轉換是你提到的同一個表達式,格式26-Sep-16不能檢索年份信息,因爲只提到了16。 – user2975559

0

當你在做TO_DATE,你需要指定輸入日期格式,而不是輸出日期格式。

IIF(IS_DATE(Event_Date,'DD-MON-YY'),TO_DATE(Event_Date,'DD-MON-YY'),NULL) 
0

首先你需要將它轉換爲日期,告訴PowerCenter什麼是字符串格式[TO_DATE(Event_Date, 'DD-MON-YY')]。然後將其轉換爲所需格式的字符串[TO_CHAR(yourDate, 'YYYY-MM-DD')]。全部放在一起,嘗試:

IIF(IS_DATE(Event_Date,'DD-MON-YY'), TO_CHAR(TO_DATE(Event_Date, 'DD-MON-YY'), 'YYYY-MM-DD'), NULL)

+0

嗨Maciejg,它工作。然而,我必須將整個to_char部分轉換爲to_date,因爲我的目標列是日期數據類型。謝謝您的幫助。 – user2975559

+0

很高興工作。但是,如果您需要它作爲日期,那麼您可以GET RID TO_CHAR,而不是在其上添加TO_DATE。 TO_CHARs輸入是第一位的日期。 瘦你是否已經指定你需要它作爲YYYY-MM-DD。這和其他格式只適用於字符串。日期只是一個日期,因此沒有格式。 – Maciejg