请您帮忙将分钟转换为 ('HH24:MI') 的格式。
我得到整数的结果,即分钟。那么,如何转换它们呢?
谢谢
假设,您要转换 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;
/
另一种方式:
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 小时),这会出现问题,但它会给你一些开始的东西。
分享和享受。
这可以节省您的时间,但我遇到了超过 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;