행위

오라클 초를 시분초로 변환 함수

DB CAFE

thumb_up 추천메뉴 바로가기


1 초를 시:분:초 로 변경 하는 FN_SEC_TO_TIME 함수[편집]

CREATE OR REPLACE FUNCTION RTIS_DBA.FN_SEC_TO_TIME(P_SEC NUMBER) RETURN VARCHAR2
AS
    V_TIME VARCHAR2(10);
BEGIN
    IF P_SEC IS NULL THEN
        V_TIME := NULL;
    ELSE
        V_TIME := TO_CHAR(TRUNC(P_SEC/3600), 'FM900')
                  ||':'||TO_CHAR(TRUNC(MOD(P_SEC, 3600) / 60), 'FM00')
                  ||':'||TO_CHAR(TRUNC(MOD(P_SEC, 60  )     ), 'FM00');
    END IF;
    
    RETURN V_TIME;
END;

2 SQL로 변경[편집]

SELECT to_char(to_date(999999,'sssss'),'hh24:mi:ss') hmd -- 24시간이 넘으면 오류 
     , to_char(to_date(mod(9999999 , 86400), 'sssss'),'hh24:mi:ss') -- 24시간 넘으면 삭제
     , trunc(trunc(sysdate) + numtodsinterval(99999999,'second')) - trunc(sysdate) || '/' || to_char(trunc(sysdate) + numtodsinterval(99999999,'second'),'hh24:mi:ss') as "D:H:M:S"
  from dual;