[Oracle] 오라클 날짜 요일 구하기 (한글 요일, Weekday)

오라클에서 날짜의 요일(Weekday)을 구하기 위해서는 TO_CHAR 함수를 사용하면 된다. TO_CHAR 함수는 날짜의 요일을 정수 또는 문자(영문 or 한글)로 반환받을 수 있다. 아래의 예제를 보면 쉽게 이해할 수 있을 것이다.

 

목차
  1. 요일 구하기 (정수)
  2. 요일 구하기 (한글)
  3. 사용 예제

 

요일 구하기 (정수)

SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') AS "날짜" 
     , TO_CHAR(SYSDATE, 'd')          AS "요일"
  FROM dual

 

 

TO_CHAR("날짜", "포맷")

 

TO_CHAR 함수의 포맷 인자에 "d"를 입력하면 해당 날짜의 요일이 정수로 반환된다.

(1:일, 2:월, 3:화, 4:수, 5:목, 6:금, 7:토) 

 

요일 구하기 (한글)

SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') AS "날짜"
     , TO_CHAR(SYSDATE, 'dy')         AS "요일1" 
     , TO_CHAR(SYSDATE, 'day')        AS "요일2"  
  FROM dual

 

 

TO_CHAR 함수의 포맷에 "dy", "day"를 입력하면 한글로 요일이 반환된다.

요일이 영문으로 반환될 경우 오라클의 NLS_LANGUAGE 설정이 "KOREAN"으로 설정되지 않았기 때문이다.

 

NLS_LANGUAGE 설정 확인 쿼리 (  SELECT * FROM nls_session_parameters  )

 

요일을 한글로 바로 반환받기보다는 정수로 반환받아서 문자로 변환하는 것을 권장한다. 

 

SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') AS "날짜" 
     , DECODE(TO_CHAR(SYSDATE, 'd'), 1, '일'
                                   , 2, '월'
                                   , 3, '화'
                                   , 4, '수'
                                   , 5, '목'
                                   , 6, '금'
                                   , 7, '토') AS "요일"
  FROM dual

 

사용 예제

 SELECT TO_CHAR(TO_DATE('20230730','YYYYMMDD') + LEVEL, 'YYYY-MM-DD')  dte       
      , TO_CHAR(TO_DATE('20230730','YYYYMMDD') + LEVEL, 'DAY')         day       
      , TO_CHAR(TO_DATE('20230730','YYYYMMDD') + LEVEL, 'DY')          dy      
      , TO_CHAR(TO_DATE('20230730','YYYYMMDD') + LEVEL, 'D')           d   
   FROM dual 
CONNECT BY LEVEL <= 7

 

 

일주일 전체의 요일 형식을 확인할 수 있다.

 

[Oracle] 오라클 TO_CHAR 함수 사용법 완벽 정리

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

gent.tistory.com

 

댓글

Designed by JB FACTORY