Oracle을 이용하면서 자주 사용하는 기능 중의 하나인 TO_CAHR을 이용해서 원하는 형태의 날짜 정보를 보여주는 방법에 대해서 정리해봅니다.
TO_CHAR(날짜, '표현방식'[, 'NLS정보'])
SELECT
TO_CHAR(SYSDATE, 'YYYY.MM.DD') D_YYYYMMDD,
TO_CHAR(SYSDATE, 'Y','NLS_DATE_LANGUAGE=KOREAN') D_Y,
TO_CHAR(SYSDATE, 'YEAR','NLS_DATE_LANGUAGE=KOREAN') D_YEAR,
TO_CHAR(SYSDATE, 'Year','NLS_DATE_LANGUAGE=KOREAN') D_YEAR_1,
TO_CHAR(SYSDATE, 'MON') D_MON,
TO_CHAR(SYSDATE, 'Mon') D_MON_1,
TO_CHAR(SYSDATE, 'MONTH') D_MONTH,
TO_CHAR(SYSDATE, 'Month') D_MONTH_1,
TO_CHAR(SYSDATE, 'D') D_D,
TO_CHAR(SYSDATE, 'DD') D_DD,
TO_CHAR(SYSDATE, 'DDD') D_DDD,
TO_CHAR(SYSDATE, 'DAY') D_DAY,
TO_CHAR(SYSDATE, 'Day') D_DAY_1,
TO_CHAR(SYSDATE, 'DY','NLS_DATE_LANGUAGE=KOREAN') D_DY,
TO_CHAR(SYSDATE, 'Dy') D_DY_1
FROM DUAL
UNION ALL
SELECT
TO_CHAR(SYSDATE, 'YYYY.MM.DD','NLS_DATE_LANGUAGE=AMERICAN') D_YYYYMMDD,
TO_CHAR(SYSDATE, 'Y','NLS_DATE_LANGUAGE=AMERICAN') D_Y,
TO_CHAR(SYSDATE, 'YEAR','NLS_DATE_LANGUAGE=AMERICAN') D_YEAR,
TO_CHAR(SYSDATE, 'Year','NLS_DATE_LANGUAGE=AMERICAN') D_YEAR_1,
TO_CHAR(SYSDATE, 'MON','NLS_DATE_LANGUAGE=AMERICAN') D_MON,
TO_CHAR(SYSDATE, 'Mon','NLS_DATE_LANGUAGE=AMERICAN') D_MON_1,
TO_CHAR(SYSDATE, 'MONTH','NLS_DATE_LANGUAGE=AMERICAN') D_MONTH,
TO_CHAR(SYSDATE, 'Month','NLS_DATE_LANGUAGE=AMERICAN') D_MONTH_1,
TO_CHAR(SYSDATE, 'D','NLS_DATE_LANGUAGE=AMERICAN') D_D,
TO_CHAR(SYSDATE, 'DD','NLS_DATE_LANGUAGE=AMERICAN') D_DD,
TO_CHAR(SYSDATE, 'DDD','NLS_DATE_LANGUAGE=AMERICAN') D_DDD,
TO_CHAR(SYSDATE, 'DAY','NLS_DATE_LANGUAGE=AMERICAN') D_DAY,
TO_CHAR(SYSDATE, 'Day','NLS_DATE_LANGUAGE=AMERICAN') D_DAY_1,
TO_CHAR(SYSDATE, 'DY','NLS_DATE_LANGUAGE=AMERICAN') ADA,
TO_CHAR(SYSDATE, 'Dy','NLS_DATE_LANGUAGE=AMERICAN') ADA
FROM DUAL;
실행해보시면 재미난 결과가 나옵니다.
NLS_DATE_LANGUAGE를 AMERICAN으로 해주면 대소문자를 가려서 나오네요.
아래가 결과값입니다.
1 : 2009.06.10 9 TWO THOUSAND NINE Two Thousand Nine 6월 6월 6월 6월 4 10 161 수요일 수요일 수 수
2: 2009.06.10 9 TWO THOUSAND NINE Two Thousand Nine JUN Jun JUNE June 4 10 161 WEDNESDAY Wednesday WED Wed