我通过减去格式为hh:mm(00:21)的时间字段来获取小时数 通过使用这个 rtrim(char(TIMESTAMPDIFF(8,char(LABTRANS.finishtime-LABTRANS.starttime)))))|| ':'|| rtrim(char(mod(int(TIMESTAMPDIFF(4,char(LABTRANS.finishtime-LABTRANS.starttime))),60))))作为total_time, ),但我必须显示十进制值(0.3500)。我该怎么做到。
请参阅我的示例表: ->创建表labtrans(starttime TIME,finishtime TIME) ->插入labtrans(starttime,finishtime) 值('08:02 Am','08:42 Am'), ('07:02 Am','08:42 Am'), ('01:02 pm','09:02 PM'), ('06:02 Am','08:00 Am')
答案 0 :(得分:0)
这完全有帮助吗?
values hour(current time) + .01 * minute(current time)
返回
1
----------------
10.14
1 record(s) selected.
答案 1 :(得分:0)
在Db2中减去TIME
列时,结果为DEC(6,0),格式为:HHMMSS
(持续时间)。
有关详细信息,请参见Time arithmetic主题。
因此,如果您需要以time duration
格式表示HH+MM/60
,则可以使用以下代码:
select
starttime, finishtime
, finishtime-starttime hhmmss
, int(finishtime-starttime)/10000
+ dec(mod((finishtime-starttime)/100, 100), 27)/60 as "hh+mm/60"
from labtrans
结果是:
STARTTIME FINISHTIME HHMMSS hh+mm/60
--------- ---------- ------ --------
08:02:00 08:42:00 4000 0.6666
07:02:00 08:42:00 14000 1.6666
13:02:00 21:02:00 80000 8.0000
06:02:00 08:00:00 15800 1.9666