【问题标题】:How to convert m/dd/yyyy format to datetime format in informatica如何在 informatica 中将 m/dd/yyyy 格式转换为日期时间格式
【发布时间】:2020-10-21 05:43:49
【问题描述】:

尝试在 Informatica 中将 m/dd/yyyy(例如:5/22/2006)值转换为日期时间格式。我找不到合适的函数来转换这种格式。我尝试使用以下场景,但没有奏效。

  • 源字段数据类型:字符串
  • 源字段数据:'5/22/2006'
  • 条件:IIF(IS_DATE(Field1, 'MM/DD/YYYY'), TO_DATE(Field1, 'MM/DD/YYYY'), NULL)
  • 目标字段数据类型:日期时间
  • 目标字段数据(预期数据):'2006-05-22 00:00:00.000'

有人可以微调这个条件以获得我的预期输出吗?

【问题讨论】:

    标签: etl informatica informatica-powercenter


    【解决方案1】:

    我猜你可以根据 / 进行拆分并检查然后合并。

    firstpart = SUBSTR(FIELD1,1, INSTR(FIELD1,'/'))
    secondpart = SUBSTR(FIELD1, INSTR(FIELD1,'/')+1, INSTR(FIELD1,'/',2) - INSTR(FIELD1,'/')+1
    lastpart = SUBSTR(FIELD1, INSTR(FIELD1,'/',2))
    
    vfirstpart= IIF ( LENGTH(firstpart) = 1, '0'||firstpart, firstpart)
    vsecondpart= IIF ( LENGTH(secondpart ) = 1, '0'||secondpart,secondpart)
    vlastpart = IIF(LENGTH(lastpart )=2, '20'||lastpart ,lastpart )
    vField1= vfirstpart||'/'||vsecondpart||'/'|| vlastpart `
    
    Out_Final_date =  IIF(IS_DATE(vField1, 'MM/DD/YYYY'), TO_DATE(vField1, 'MM/DD/YYYY'), NULL)
    

    【讨论】:

    • 感谢 Koushik。这个条件会起作用,但我有很多字段需要使用上述条件,这会使映射变得复杂
    • 我建议使用表达式转换或仅使用表达式转换来创建可重用映射。将输入作为字符串获取,然后在其中执行所有操作并生成 1 个单个输出列作为日期。对多个输入/输出字段重复计算。
    【解决方案2】:

    请使用以下功能,它可以正常工作。您必须检查真/假条件。 如果IS_DATE为真,则返回1,如果为假则返回0

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    相关资源
    最近更新 更多