Вопрос по time, oracle – Конвертировать минуты в формат HH24: MI

2

Не могли бы вы помочь в преобразовании минут в формат ('HH24: MI').

Я получаю результат в целых числах, которые являются минутами. Итак, как их конвертировать?

Спасибо

Ваш Ответ

3   ответа
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 часа), но это даст вам кое-что для начала.

Поделитесь и наслаждайтесь.

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;
4

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;
/

Похожие вопросы