【发布时间】:2013-12-05 06:04:12
【问题描述】:
您好,我有下表,其中包含开始时间、结束时间、总时间
STARTTIME | ENDTIME | TOTAL TIME TAKEN |
02-12-2013 01:24:00 | 02-12-2013 04:17:00 | 02:53:00 |
我需要使用 oracle 中的更新查询更新TOTAL TIME TAKEN 字段
为此,我尝试了以下选择查询
select round((endtime-starttime) * 60 * 24,2),
endtime,
starttime
from purge_archive_status_log
但结果是我得到 02.53,但我的期望格式是 02:53:00 请告诉我该怎么做?
【问题讨论】:
-
也许这篇文章可以帮助stackoverflow.com/questions/970249/format-interval-with-to-char 好像
endtime和starttime是DATE 类型,那么endtime-starttime将是一个间隔。顺便说一句,您为什么要保存一个包含可以在查询中计算的数据的列?最好不要使用virtual columns -
@A.B.Cade 我试过这样没用
select TO_CHAR(NVL(endtime-starttime, TO_DSINTERVAL('0 00:00:00'))) from purge_archive_status_log -
不,根据帖子你需要做这样的事情:
to_char(extract(HOUR FROM (endtime-starttime)), 'fm00') || ':' || to_char(extract(MINUTE FROM (endtime-starttime)), 'fm00') || ':' || to_char(extract(SECOND FROM (endtime-starttime)), 'fm00')