【发布时间】:2017-09-20 21:53:37
【问题描述】:
我有一个场景,必须将具有日期范围的行拆分为该日期范围内的所有日期的多行。有谁知道如何在 Informatica powercenter 的这种情况下获取目标(如附件)?
来源
code start date end date
ADMISSION 01/01/2017 02:05:11 01/01/2017 04:20:53
TRANSFER 01/01/2017 04:20:54 01/03/2017 18:30:48
DISCHARGE 01/03/2017 18:30:49 01/03/2017 20:18:11
目标
code start date end date
ADMISSION 01/01/2017 02:05:11 01/01/2017 04:20:53
TRANSFER 01/01/2017 04:20:54 01/01/2017 11:59:59
TRANSFER 01/02/2017 00:00:00 01/02/2017 11:59:59
TRANSFER 01/03/2017 00:00:00 01/03/2017 18:30:48
DISCHARGE 01/03/2017 18:30:49 01/03/2017 20:18:11
提前谢谢你!
【问题讨论】:
-
谢谢大家的回答!我在源限定符中添加了一个 SQL,它将创建一个新的日期列并为开始日期和结束日期内的每个日期添加一行。由于所有新行都将开始和结束日期时间作为实际开始和结束时间,我添加了一个表达式来调整与新日期列比较的日期,并与 00:00:00 连接以表示开始日期不等于新日期和 23 :59:59 结束日期不等于新日期
-
这里是 SQ 查询:with tmp(dt) as (select cast('20141001' as datetime) union all select dt+ 1 from tmp where dt= cast(A.start_date as date) and cast(dt as date)
标签: java sql etl transformation informatica