如何将informatica中的m / dd / yyyy格式转换为日期时间格式

时间:2020-06-30 20:24:32

标签: etl informatica informatica-powercenter

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

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

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

2 个答案:

答案 0 :(得分:0)

我想您可以根据/进行拆分,然后检查并合并。

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)

答案 1 :(得分:-1)

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

enter image description here

相关问题