0

目前我正在使用这个查询,它以分钟为单位提供持续时间。

我的查询的一部分

Select 
   E.xyme

From
    (SELECT Timee as xyme from  
            (select round(avg(tableT.DURATIONMIN),2) as Timee
                FROM ownerName.tableT tableT
                   where tableT.FLAG = 0 )
    )E

输出将是

Xyme
----
125.58

输出寻找

Xyme
----
2 hours, 5 minutes, 35 seconds

部分解决方案 我知道我们可以使用类似下面的方法,但我无法实现。

 floor((sysdate-Timee)*24)
  || ' HOURS ' ||
  mod(floor((sysdate-Timee)*24*60),60)
  || ' MINUTES ' ||
  mod(floor((sysdate-Timee)*24*60*60),60)
  || ' SECS ' Duration
4

1 回答 1

7

numtodsinterval()您可以使用函数将分钟的数值转换为间隔类型,然后使用extract()其中的元素:

select extract (hour from numtodsinterval(timee, 'MINUTE')) || ' hours, '
  || extract (minute from numtodsinterval(timee, 'MINUTE')) || ' minutes, '
  || extract (second from numtodsinterval(timee, 'MINUTE')) || ' seconds' as xyme
from (select 125.58 as timee from dual);

XYME                                   
----------------------------------------
2 hours, 5 minutes, 34.8 seconds         

您可以根据需要roundtrunc秒值;看起来像你想要round的样本。

于 2013-10-03T14:55:30.537 回答