如何将查询结果作为时间HH:MM返回?

时间:2014-04-09 23:26:35

标签: sql oracle

SELECT SUM(HOURS_WORKED) * 24 as TOTAL_HOURS
FROM(
SELECT  AL.END_TIME - AL.START_TIME as HOURS_WORKED
from FCXP.APPLIED_LABOR AL
where AL.TASK_CARD_EXECUTION_ID = '8ab4f8884428a1540144c998588a7b2c');

嘿伙计们,我刚才想不起的简单问题 - 这是以小数形式返回TOTAL_HOURS,因此10:30小时将显示为10.50。我该如何改变?谢谢!

2 个答案:

答案 0 :(得分:0)

也许喜欢这个:

SELECT EXTRACT(HOUR FROM NUMTODSINTERVAL(SUM(HOURS_WORKED), 'HOUR'))||':'
   ||EXTRACT(MINUTE FROM NUMTODSINTERVAL(SUM(HOURS_WORKED), 'HOUR')) AS TOTAL_HOURS
FROM (...

答案 1 :(得分:0)

查看以下查询:

SELECT TRUNC(2.75) || 'hrs:' ||
   SUBSTR(numtodsinterval(2.75, 'HOUR'), 15,2) || 'mins:' ||
   SUBSTR(numtodsinterval(2.75, 'HOUR'), 18,2) || 'secs' hoursvalue FROM dual

这将返回如下:

<强> hoursvalue   2小时:45分钟:00secs

你也可以使用下面的查询,它也会返回相同的结果:

SELECT TRUNC(2.75) || 'hrs:' ||
   extract (minute from numtodsinterval(2.75, 'HOUR' )) || 'mins:' ||
   extract (second from numtodsinterval(2.75, 'HOUR')) || 'secs'  hoursval
FROM dual