我需要将HH:MM:SS格式的包含时间的字符串值转换为时间戳,然后添加按票证编号分组的那些时间戳。我已经尝试了TIME函数,但是它们并没有太大帮助。
当前结果:
TICKETID WORKTIMETRACKING
5141 02:55:00
5141 00:00:00
7856 01:12:55
7857 00:07:00
7857 00:01:00
所需结果:
TICKETID WORKTIMETRACKING
5141 02:55:00
7856 01:12:55
7857 00:08:00
在当前结果中,我们具有相同的工单ID,但具有不同的工作时间跟踪,但我需要通过将时间总计(以timestampformat格式)来提取结果,如期望的结果所示(工单:7857,工作时间总计为00:08:00)
答案 0 :(得分:1)
我们不能添加两个TIME值,即
db2 "values time('00:01:59') + time ('00:00:02')"
SQL0402N The data type of an operand of an arithmetic function or operation
"+" is invalid. SQLSTATE=42819
因此,最简单的方法是使用MIDNIGHT_SECONDS scalar function。
供您输入
db2 "create table tickets(ticketid int, worktimetracking varchar(10))"
db2 "insert into tickets values (5141, '02:55:00')"
db2 "insert into tickets values (5141, '00:00:00')"
db2 "insert into tickets values (7856, '01:12:55')"
db2 "insert into tickets values (7857, '00:07:00')"
db2 "insert into tickets values (7857, '00:01:00')"
您可以尝试以下操作:
db2 "select
ticketid,
time('00:00:00') + sum(midnight_seconds(time(worktimetracking))) seconds as total_time
from
tickets
group
by ticketid"
TICKETID TOTAL_TIME
----------- ----------
5141 02:55:00
7856 01:12:55
7857 00:08:00
3 record(s) selected.
这将一直保持不超过24小时,否则您将需要其他类型。