[Oracle] 오라클 시간 포맷 변경 방법 (HH24:MI:SS)

오라클 SQL에서 시간을 포맷팅 할 때 사용하는 포맷 요소는 다양한 형식을 지원한다. 아래의 표를 참고하여 시간 데이터를 다양한 형식으로 변환하여 출력하면 된다. 날짜 및 시간 포맷은 TO_CHAR, TO_DATE 함수를 사용할 때 사용하기 때문에 사용법을 정확히 익혀두면 많은 도움이 될 것이다.

 

형식요소 내용 범위
 HH, HH12  시간 (12시간 단위)  0 ~ 12
 HH24  시간 (24시간 단위)  0 ~ 24
 MI  분  0 ~ 59
 SS  초  0 ~ 59
 SSSSS  자정이후 초 단위 시간  0 ~ 86399
 FF[1..9]  밀리세컨드 표시  최대 9자리까지, SS.FF3
 AM, PM  오전, 오후 표시  

 

목차

 

날짜 포맷 기본 사용법

SELECT SYSDATE
     , TO_CHAR(SYSDATE, 'YYYY-MM-DD AM HH:MI:SS') AS hh12 --12시간 단위
     , TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')  AS hh24 --24시간 단위
  FROM dual

 

 

TO_CHAR, TO_DATE 함수를 사용할 때 포맷 형식요소를 지정하여 포맷을 변경할 수 있다.

실무에서는 'YYYY-MM-DD HH24:MI:SS' 24시간 단위의 형식을 많이 사용한다.

 

SELECT SYSDATE
     , TO_CHAR(SYSDATE, 'HH')    AS hh    --시간(12시간 단위)
     , TO_CHAR(SYSDATE, 'HH12')  AS hh12  --시간(12시간 단위)
     , TO_CHAR(SYSDATE, 'HH24')  AS hh24  --시간(24시간 단위)
     , TO_CHAR(SYSDATE, 'MI')    AS mi    --분
     , TO_CHAR(SYSDATE, 'SS')    AS ss    --초
     , TO_CHAR(SYSDATE, 'SSSSS') AS sssss --자정이후 초 단위 시간
     , TO_CHAR(SYSDATE, 'AM')    AS am    --오전,오후
     , TO_CHAR(SYSDATE, 'PM')    AS pm    --오전,오후
  FROM dual

 

 

위의 예제에서 각 항목요소별 포맷형식을 확인할 수 있다.

HH, HH12는 동일한 형식이며 AM, PM도 동일한 형식이기 때문에 익숙한 형식을 사용하면 된다.

AM, PM은 시스템 언어 설정에 따라서 한글 또는 영문으로 반환된다.

 

자정이후 초 단위 시간의 활용법

SELECT SYSDATE
     , TO_CHAR(SYSDATE, 'SSSSS') AS sssss
     , FLOOR(TO_CHAR(SYSDATE, 'SSSSS') / 60) AS minutes
     , FLOOR(TO_CHAR(SYSDATE, 'SSSSS') / (60*60)) AS hours 
     , TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'SSSSS'), 'SSSSS'), 'HH24:MI:SS') AS times
  FROM dual

 

 

자정이후 초 단위 시간(SSSSS)은 0시부터 입력된 시간까지 초로 환산해서 반환한다.

(0시부터 21시 59분 39초 까지는 77,139초이다)

초로 반환되기 때문에 분, 시간 등으로 다시 변환해서 사용할 수 있다.

 

AM, PM 한글 영문 지정 방법

SELECT TO_CHAR(SYSDATE, 'AM') AS ampm
     , TO_CHAR(SYSDATE, 'AM', 'nls_date_language=american') AS AMERICAN
     , TO_CHAR(SYSDATE, 'AM', 'nls_date_language=korean')   AS KOREAN
  FROM dual

 

 

오전, 오후(AM, PM)는 시스템 언어 설정에 따라서 한글 또는 영문으로 반환된다.

한글 또는 영문으로 고정해서 표시하고 싶을 때는 nls_date_language를 지정하면 된다.

 

밀리세컨드 포맷 사용법

SELECT SYSTIMESTAMP
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF')  AS cur_datetime_ff
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF1') AS cur_datetime_ff1
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF2') AS cur_datetime_ff2
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3') AS cur_datetime_ff3
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF4') AS cur_datetime_ff4
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF5') AS cur_datetime_ff5
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF6') AS cur_datetime_ff6
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF6') AS cur_datetime_ff7
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF7') AS cur_datetime_ff8
     , TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF8') AS cur_datetime_ff9 
  FROM dual

 

 

FF는 6자리의 밀리초를 표시하고, FF1~FF9를 지정하면 지정한 길이만큼 밀리초를 표시한다.

 

SELECT SYSTIMESTAMP
     , TO_CHAR(SYSTIMESTAMP, 'TZH') AS tzh --표준시간대 시간
     , TO_CHAR(SYSTIMESTAMP, 'TZM') AS tzm --표준시간대 분
     , TO_CHAR(SYSTIMESTAMP, 'TZR') AS tzr --표준시간대 지역
  FROM dual

 

 

타임존의 시간, 분을 조회할 수 있다.

 

 

[Oracle] 오라클 날짜 포맷 변경 방법 (YYYY-MM-DD)

오라클에서 현재 날짜 및 시간을 조회할 때 SYSDATE 함수를 사용한다. SYSDATE를 조회하면 오라클에 설정된 날짜 포맷으로 조회된다. 원하는 포맷(YYYY-MM-DD)으로 변경해서 조회하기 위해서는 TO_CHAR 함

gent.tistory.com

 

[Oracle] 오라클 현재시간, 현재날짜 구하기 (SYSDATE)

오라클 SQL에서 SYSDATE 함수를 사용하여 서버의 현재 날짜와 시간을 조회할 수 있다. 반면, SYSTIMESTAMP 함수는 나노초 단위까지 더 정밀한 시간을 반환하고 타임존 정보도 포함한다. SYSDATE는 DATE 타

gent.tistory.com

 

[Oracle] 오라클 TO_CHAR 함수 사용법

오라클에서 쿼리문을 작성할 때 TO_CHAR() 함수는 날짜, 숫자 등의 값을 문자열로 변환하는 함수이다. 자주 사용하는 기본 함수이므로 아래의 다양한 변환 방법을 알고 있으면 많은 도움이 된다.

gent.tistory.com

 

[Oracle] 오라클 TO_DATE 함수 사용법

오라클에서 문자열을 날짜형 데이터로 형 변환을 하기 위해서는 TO_DATE 함수를 사용하면 된다. TO_DATE("문자열", "날짜 포맷") 아래의 예제를 보면 쉽게 이해할 수 있다. SELECT TO_DATE('2021-12-12', 'YYYY-MM

gent.tistory.com

 

 

댓글

Designed by JB FACTORY