데이터베이스/오라클

[Oracle] Date to char 날짜 타입 포맷 변경 예제

Unipiz 2020. 10. 26. 15:47

오라클에서 원하는 형식으로 날짜(Date) 타입을 가져와보자. 

 TO_CHAR  - 문자로

 

기본날짜 Select

SELECT SYSDATE FROM DUAL

 

 

보기 좋은 날짜 포맷

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL -- 2020-10-26

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MM:SS') FROM DUAL
-- 2020-10-26 15:10:54

 

 

 

그 외 예제

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL
UNION ALL
SELECT TO_CHAR(SYSDATE,'RRRR-MM-DD') FROM DUAL
UNION ALL
SELECT TO_CHAR(SYSDATE,'MON') FROM DUAL         -- 10월
UNION ALL
SELECT TO_CHAR(SYSDATE,'DAY') FROM DUAL         -- 월요일
UNION ALL
SELECT TO_CHAR(SYSDATE,'DY') FROM DUAL          -- 월 (달랑 요일)
UNION ALL
SELECT TO_CHAR(SYSDATE,'D') FROM DUAL           -- 일월화수목금(1~7)
UNION ALL
SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL         -- x/365 (일)
UNION ALL
SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL          -- x/53 (주)
UNION ALL
SELECT TO_CHAR(SYSDATE,'W') FROM DUAL           -- 몇째주 일요일이야? 1~5
UNION ALL
SELECT TO_CHAR(SYSDATE,'DL') FROM DUAL          -- 2020년10월26일 월요일

 

 

*포맷 YYYY 와 RRRR

두 포맷 다 년을 나타내며 4자리일 때 차이가 없고, 2자리일 때 차이를 보인다.

YY 는 앞에 20 필수로 붙고,

RR 은 앞에 (x < 50) ? 20 : 19 가 붙는다.

SELECT TO_DATE('00','YY') FROM DUAL --2000
UNION ALL
SELECT TO_DATE('50','YY') FROM DUAL -- 2050


SELECT TO_DATE('00','RR') FROM DUAL -- 2000
UNION ALL
SELECT TO_DATE('49','RR') FROM DUAL -- 2049
UNION ALL
SELECT TO_DATE('50','RR') FROM DUAL -- 1950
UNION ALL
SELECT TO_DATE('51','RR') FROM DUAL -- 1951

 

잘 사용해보자.