반응형
프로그래밍을 하다보면 해당 날짜에서 요일이 필요한 경우가 생기는데요. 오라클에서는 TO_CHAR 함수를 이용해서 쉽게 해당 날짜의 요일을 알 수 있습니다. 그 방법에 대해서 알아보겠습니다.
TO_CHAR(날짜, '포맷');
TO_CHAR 함수를 이용해서 해당 날짜의 요일을 구할 때 사용하는 포맷의 종류는 총 3가지가 있다.
- day : 일요일, 월요일, 화요일, 수요일, 목요일, 금요일, 토요일
- dy : 일, 월, 화, 수, 목, 금, 토
- d : 1 ~ 7 (요일을 숫자로 출력)
SELECT TO_CHAR(SYSDATE, 'DAY')
FROM DUAL;
# 토요일
SELECT TO_CHAR(SYSDATE, 'DY')
FROM DUAL;
# 토
SELECT TO_CHAR(SYSDATE, 'D')
FROM DUAL;
# 7
금일(2022.08.20) 기준으로 검색했을 때 위의 결과가 나온다.
SELECT TO_CHAR(TO_DATE('20200820', 'YYYYMMDD') + LEVEL, 'YYYYMMDD') AS "DATE"
, TO_CHAR(TO_DATE('20220820', 'YYYYMMDD') + LEVEL, 'DAY') AS "DAY"
, TO_CHAR(TO_DATE('20220820', 'YYYYMMDD') + LEVEL, 'DY') AS "DY"
, TO_CHAR(TO_DATE('20220820', 'YYYYMMDD') + LEVEL, 'D') AS "D"
FROM DUAL
CONNECT BY LEVEL < 8;
CONNECT BY LEVEL 을 이용하면 원하는 날짜로부터 일주일을 출력할 수도 있다.
요일이 영어로 출력돼요.
위의 쿼리를 이용해서 출력했는데 요일이 영어로 출력되는 경우가 생길 수 있다. TO_CHAR의 세번째 인자값을 이용해서 쉽게 해결할 수 있다.
SELECT TO_CHAR(TO_DATE('20200820', 'YYYYMMDD') + LEVEL, 'YYYYMMDD') AS "DATE"
, TO_CHAR(TO_DATE('20220820', 'YYYYMMDD') + LEVEL, 'DAY', 'NLS_DATE_LANGUAGE=korean') AS "DAY"
, TO_CHAR(TO_DATE('20220820', 'YYYYMMDD') + LEVEL, 'DY', 'NLS_DATE_LANGUAGE=korean') AS "DY"
, TO_CHAR(TO_DATE('20220820', 'YYYYMMDD') + LEVEL, 'D') AS "D"
FROM DUAL
CONNECT BY LEVEL < 8;
TO_CHAR 함수 세번째 인자값에 NLS_DATE_LANGUAGE=korean 을 넣어주면 완료.
SELECT TO_CHAR(TO_DATE('20200820', 'YYYYMMDD') + LEVEL, 'YYYYMMDD') AS "DATE"
, TO_CHAR(TO_DATE('20220820', 'YYYYMMDD') + LEVEL, 'DAY', 'NLS_DATE_LANGUAGE=english') AS "DAY"
, TO_CHAR(TO_DATE('20220820', 'YYYYMMDD') + LEVEL, 'DY', 'NLS_DATE_LANGUAGE=english') AS "DY"
, TO_CHAR(TO_DATE('20220820', 'YYYYMMDD') + LEVEL, 'D') AS "D"
FROM DUAL
CONNECT BY LEVEL < 8;
반대로 영어로 표시하고 싶다면 NLS_DATE_LANGUAGE=english 을 넣어주면 된다.
반응형
'개발 & 데이터베이스 > DB' 카테고리의 다른 글
오라클 숫자 천단위 콤마 찍는 방법 2가지 (TO_CHAR 함수) (0) | 2022.08.24 |
---|---|
오라클 디비링크 (DB LINK) 정의 및 생성 권한 부여 (0) | 2022.08.20 |
오라클 중복 데이터 쉽고 빠르게 찾는 방법 (GROUP BY, OVER) (0) | 2022.08.18 |
오라클 간단하고 짧은 조건함수 DECODE 함수 사용 방법 (0) | 2022.03.14 |
오라클 ORA-28001: 비밀번호가 만기되었습니다. 오류 해결 방법 (0) | 2022.03.04 |