본문 바로가기
DataBase/Oracle

[Oracle] 오라클 날짜, 시간 형식(포맷) 총정리 / 구분자, 요일

by 알쓸전잡 2025. 9. 10.
반응형

오라클에서 통계를 추출할 때 많이 사용하는 날짜 형식에 대해서 알려 드리겠습니다.

연월일 날짜 형식(구분자 사용)
SELECT TO_CHAR(SYSDATE,'YYYYMMDD') AS NOW_CHAR
     , TO_CHAR(SYSDATE,'YYYY/MM/DD') AS NOW_CHAR1
     , TO_CHAR(SYSDATE,'YYYY-MM-DD') AS NOW_CHAR2
     , TO_CHAR(SYSDATE,'DD/MM/YYYY') AS NOW_CHAR3
     , TO_CHAR(SYSDATE,'YYYY,MM,DD') AS NOW_CHAR4
     , TO_CHAR(SYSDATE,'YYYY.MM.DD') AS NOW_CHAR5
     , TO_CHAR(SYSDATE,'YYYY;MM;DD') AS NOW_CHAR6
     , TO_CHAR(SYSDATE,'YYYY"년"MM"월"DD"일"') AS NOW_CHAR7
     , TO_CHAR(SYSDATE,'DL') AS NOW_FULL
    FROM DUAL

연월일 구분자 활용
연월일 구분자 활용

포맷 설명 비고
YYYY"년"MM"월"DD"일" 한글 형식으로 표현 시 사용 한글은 큰 따옴표( " ) 로 선언
DL 날짜 형식 값 반환 NLS_DATE_FORMAT 에 따라 값 반환
  • 구분자는 . , ; / - 사용 가능
  • 년/월/일 뿐만 아니라 일/월/년 형태로도 변환 가능합니다.
년 월 일 분리, 날짜 형식 (응용) 
SELECT SYSDATE 
     , TO_CHAR(SYSDATE,'YYYY') AS YEAR
     , TO_CHAR(SYSDATE,'YY') AS YEAR2
     , TO_CHAR(SYSDATE,'Y') AS YEAR1
     , TO_CHAR(SYSDATE,'MM') AS MONTH
     , TO_CHAR(SYSDATE,'DD') AS DAY
     , TO_CHAR(SYSDATE,'D') AS YOIL
     , TO_CHAR(SYSDATE,'DDD') AS YEAR_DAY
     , TO_CHAR(SYSDATE,'RR') AS RR
     , TO_CHAR(SYSDATE,'Q') AS QUARTER
    FROM DUAL

연 월 일 분리, 응용 버전
연 월 일 분리, 응용 버전

포맷 설명 비고
YYYY
YY
Y
년 4, 2, 1 자리 년 뒷자리 개수만큼 반환
RR 년 2자리 YY와 동일
Q (1~4)분기 1: 1~3월, 2: 4~6월, 3: 7~9월, 4: 10~12월
D 요일(1~7) (세션의 NLS 지역에 따라 상이) 1: 일요일, 7: 토요일
DD 일(1~31)  
DDD 1년 일 수(1~366)  

 

시분초 시간 형식 (구분자 사용)
SELECT SYSDATE
     , TO_CHAR(SYSDATE,'HH') AS HOUR
     , TO_CHAR(SYSDATE,'HH24') AS HOUR24
     , TO_CHAR(SYSDATE,'MI') AS MINUTE
     , TO_CHAR(SYSDATE,'SS') AS SECOND
     , TO_CHAR(SYSDATE,'SSSSS') AS TOTAL_SECOND
     , TO_CHAR(SYSDATE,'HHMISS') AS TIME
     , TO_CHAR(SYSDATE,'HH24MISS') AS TIME_24
     , TO_CHAR(SYSDATE,'HH24:MI:SS') AS TIME_1
     , TO_CHAR(SYSDATE,'AM') AS AMPM
    FROM DUAL

시분초 시간 형식
시분초 시간 형식

포맷 설명 비고
HH
HH12
12시간 형식으로 시간 표시 HH 뒤에 숫자 안 붙이면 HH12로 인식
HH24 24시간 형식으로 표시  
MI  
SS  
SSSSS 자정부터 지금까지 시간을 초로 계산  
AM 오전, 오후 (AM, PM)  

 

연월일 시분초 형식
SELECT TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') AS FULL24
     , TO_CHAR(SYSDATE,'YYYYMMDDHHMISS') AS FULL12
     , TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') AS TIME24
     , TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MI:SS') AS TIME12
    FROM DUAL

연월일 시분초 형식
연월일 시분초 형식

 

※ 예시를 작성할 때 오전이어서 임시로 12시간을 더해서 표시했습니다.

요일, 주, 월, 주 형식
SELECT TO_CHAR(SYSDATE,'DY') AS YOIL1
     , TO_CHAR(SYSDATE,'DAY') AS YOIL2
     , TO_CHAR(SYSDATE,'MON') AS MON
     , TO_CHAR(SYSDATE,'MONTH') AS MONTH
     , TO_CHAR(SYSDATE,'WW') AS WW
     , TO_CHAR(SYSDATE,'W') AS W
    FROM DUAL

요일, 주, 월, 주 형식
요일, 주, 월, 주 형식

포맷 설명 비고
DY 요일 한글자 (월, ..., 일)  
DAY 요일 전체 (월요일, ..., 일요일)  
MON 월 요약 한글 차이 없음
MONTH 월 전체 한글 차이 없음
WW 주 수 (연 초 부터) 올해의 몇번째 주
W 주 수 (월 초 부터) 이번 달의 몇번째 주
반응형