Informatica提供了大量的常见的函数,如字符转换,字符串长度截取,日期转换等等。
在项目中遇到的就是日期转换的问题,SF中的日期格式是yyyyy-mm-dd hh:mm:ss
,而我们系统中的日期格式为TimeStamp,而且记录到毫秒级别,所以涉及到了两种日期格式的转换: 从 DateTime类型转换为TimeStamp类型
如上图,我们在一个Expression
中进行日期格式的转换,通过比较CreatedDate
与19700101 00:00:00.000
之间差的毫秒数,来得到TimeStamp类型的时间,表达式如下:
1 | DATE_DIFF(CreatedDate, to_date('19700101 00:00:00.000','yyyymmdd hh24:mi:ss.ms'),'MS') |
从TimeStamp类型转为DateTime类型
与上面类似,我们同样在一个Expression
中进行日期格式的转换,使用To_Date
函数将毫秒转化为DateTime类型,首先将creation_date
从字符串转为BIGINT
类型,在除以1000,转换成秒,第三个参数SS
代表的是秒,
1 | ADD_TO_DATE(TO_DATE('19700101 00:00:00','yyyymmdd hh24:mi:ss'), 'SS', TO_BIGINT(creation_date)/1000 ) |