[Oracle] 오라클 날짜 요일 구하기 (한글 요일, Weekday)
- 데이터베이스/오라클
- 2015. 8. 18.
오라클에서 날짜의 요일(Weekday)을 구하기 위해서는 TO_CHAR 함수를 사용하면 된다. TO_CHAR 함수는 날짜의 요일을 정수 또는 문자(영문 or 한글)로 반환받을 수 있다. 아래의 예제를 보면 쉽게 이해할 수 있을 것이다.
목차 |
요일 구하기 (정수)
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
일주일 전체의 요일 형식을 확인할 수 있다.