【问题标题】:Converting DD-MON-YY to YYYY-MM-DD in informatica在 informatica 中将 DD-MON-YY 转换为 YYYY-MM-DD
【发布时间】:2017-01-27 07:48:08
【问题描述】:

我在一个格式为DD-Mon-YY 的平面文件中有一个日期列,需要将其转换为YYYY-MM-DD。这是我在表达式转换中用到的表达式

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

由于输入日期中没有世纪(26-Sep-16)信息,导致字符串格式无效。

我们将不胜感激。

谢谢。

【问题讨论】:

    标签: date mapping type-conversion informatica


    【解决方案1】:

    首先,您需要将其转换为日期,告诉 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)

    【讨论】:

    • 嗨,Maciejg,它奏效了。但是,我必须将整个 to_char 部分转换为 to_date,因为我的目标列是日期数据类型。感谢您的帮助。
    • 很高兴它成功了。但是,如果您需要它作为日期,那么您可以 GET RID of TO_CHAR 而不是在其上添加 TO_DATE。 TO_CHARs 输入首先是日期。薄是你已经指定你需要它作为 YYYY-MM-DD。这以及任何其他格式仅适用于字符串。日期只是一个日期,因此没有格式。
    【解决方案2】:

    在做TO_DATE时,需要指定输入日期格式,而不是输出日期格式。

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

    【讨论】:

      【解决方案3】:


      您可以使用下面提供的简单功能,

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

      要了解有关 informatica 的更多信息,请访问此博客, http://etlinfromatica.wordpress.com/

      【讨论】:

      • 我没有得到全年部分,字符串 26-sep-16 将被转换为 yyyy-mm-dd
      • 你的目标是什么。它的平面文件或数据库?
      • 目标是一个 teradata 表,我正在转换的表达式与您提到的相同,格式 26-Sep-16 无法检索年份信息,因为仅提及 16。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多