【发布时间】:2019-08-28 22:52:51
【问题描述】:
我想计算 DB2 中不同列和行的值的差异,如图所示,我想计算突出显示的 END_TS - START_TS。例如,END_TS:2019 年 8 月 19 日下午 6:48:03 - START_TS:2019 年 8 月 19 日下午 12:04:06
我尝试使用此查询,但没有显示差异
SELECT
t1.PROCESS_NM,
t1.START_TS,
t2.END_TS,
TIMESTAMPDIFF(2,CHAR(t2.END_TS - t1.START_TS)) AS DURATION
--4 is minutes, 2 for seconds, 8 for hours
FROM PROCESS_LOG t1, PROCESS_LOG t2
WHERE t1.PROCESS_NM=t2.PROCESS_NM
AND t1.PROCESS_STATE ='BEGIN'
AND t2.PROCESS_STATE = 'END'
AND t1.WH_CREATE_TS> CURRENT TIMESTAMP -10 DAYS
AND t1.PROCESS_NM LIKE ('%xxxxxxxxxxx%')
AND t2.END_TS=
(SELECT MIN(t3.END_TS) FROM PROCESS_LOG t3
WHERE t1.START_TS <= t3.END_TS
AND t3.PROCESS_STATE = 'END');
我希望在右列中使用“process_state”=“END”时的 END_TS 来减去左列中“process_state”=“BEGIN”时的 START_TS
【问题讨论】:
标签: sql database db2 calculation