【问题标题】:How to convert Minutes to Hours Minutes and Seconds in SQL?如何在 SQL 中将分钟转换为小时分钟和秒?
【发布时间】:2013-10-03 14:45:48
【问题描述】:

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

我的部分查询

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

【问题讨论】:

  • 当你说你不能实现时,有什么特别的原因吗?\
  • 嗨,我的意思是我做错了什么,它没有给我结果(输出)。

标签: sql date datetime oracle11g


【解决方案1】:

您可以使用numtodsinterval() function 将分钟的数值转换为间隔类型,然后使用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

【讨论】:

  • 感谢您的回答,但我需要先在子查询中取平均值,然后在外部查询中提取。所以你认为我还应该使用avg(tableT.DUURATIONMIN) as Timee 吗?
  • 嘿@AlexPoole 你很快 :) 但我想提供相同的解决方案:)
  • 非常感谢它的工作,但它给了我很大的十进制数,我只使用了avg(tableT.DURATIONMIN) as Timee
  • @Mowgli - 只需将我的 select ... from dual 子查询替换为您自己的。您如何显示结果不会影响数据的含义或您如何首先获得该数字。子查询中的round 可能会给出一个稍微错误的答案,但我会跳过它并只将最后的秒值四舍五入?
猜你喜欢
  • 2023-03-14
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-01
相关资源
最近更新 更多