请帮助您将分钟转换为('HH24:MI')格式。
我得到的结果是整数,即分钟。那么,如何转换呢?
由于
答案 0 :(得分:4)
假设您要转换492分钟:
select to_char(trunc(sysdate) + 492/24/60, 'hh24:mi') from dual;
如果你想要一个功能:
create or replace
function tq84_convert_minutes_hh24mm (p_minutes in number)
return varchar2 is
begin
return to_char (trunc(sysdate) + p_minutes / 24/60, 'hh24:mi');
end tq84_convert_minutes_hh24mm;
/
稍后......
begin
dbms_output.put_line (tq84_convert_minutes_hh24mm(492));
end;
/
答案 1 :(得分:1)
另一种方式:
WITH c AS
(SELECT 492 AS MINUTES FROM DUAL)
SELECT TRIM(TO_CHAR(TRUNC(MINUTES / 60), '09')) || ':' ||
TRIM(TO_CHAR(TRUNC(MOD(ABS(MINUTES), 60)), '09')) AS HHMM
FROM C
如果时间超过1440分钟(24小时),这将会出现问题,但它可以为您提供一些东西。
分享并享受。
答案 2 :(得分:1)
这可以拯救你,但我遇到的问题是时间超过1440分钟。
select to_char(trunc(sysdate) + [MINUTES]/24/60, 'hh24:mi') from dual;
所以我做了一个函数来验证分钟是否大于或等于1440:
IF (QT_MINUTES_P IS NOT NULL) THEN
IF (QT_MINUTES_P >= 1440) THEN
SELECT ROUND(QT_MINUTES_P/ 60) ||':'|| MOD(QT_MINUTES_P, 60)
INTO DS_RESULT
FROM DUAL;
ELSE
SELECT TO_CHAR(TRUNC(SYSDATE) + (QT_MINUTES_P)/24/60, 'hh24:mi')
INTO DS_RESULT
FROM DUAL;
END IF;
END IF;