-
[Oracle] TO_CHAR 함수 정리개발/데이터베이스 2024. 7. 14. 23:00
날짜, 숫자등의 값을 문자열로 변경
포맷 설명 예제 -
/
,
.
;
:
"text"결과에 포함되는 구두점과 텍스트 SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL;
→ 20220524
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;
→ 2022-05-24
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD') FROM DUAL;
→ 2022/05/24
SELECT TO_CHAR(SYSDATE, 'YYYY,MM,DD') FROM DUAL;
→ 2022,05,24
SELECT TO_CHAR(SYSDATE, 'YYYY.MM.DD') FROM DUAL;
→ 2022.05.24
SELECT TO_CHAR(SYSDATE, 'YYYY;MM;DD') FROM DUAL;
→ 2022;05;24
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
→ 2022/05/24 17:34:40
SELECT TO_CHAR(SYSDATE, 'YYYY년MM월DD일') FROM DUAL;
→ 2022년 05월 24일DL 날짜 형식 값을 반환
※ NLS_DATE_FORMAT 의해 결정됨SELECT TO_CHAR(SYSDATE, 'DL') FROM DUAL;
→ 2022년 5월 24일 화요일YYYY
SYYYY년 4자리
S를 지정하면 기원전의 날짜의 선두에 부의 부호(-)가 붙는다.SELECT TO_CHAR(SYSDATE, 'YYYY') FROM DUAL;
→ 2022YYY
YY
Y년 3, 2, 1자리 SELECT TO_CHAR(SYSDATE, 'YY') FROM DUAL;
→ 22 -- 2022년이므로 뒤의 2자리인 22만 반환RR 00~49는 2000~2049년
50~99는 1950~1999년을 의미한다.SELECT TO_CHAR(SYSDATE, 'RR') FROM DUAL;
→ 22Q 분기(1~4)
(1:1~3월, 2: 4~6월, 3: 7~9월, 4: 10~12월)SELECT TO_CHAR(SYSDATE, 'Q') FROM DUAL;
→ 2 -- 2분기MM 월(01~12, 1월 : 01) SELECT TO_CHAR(SYSDATE, 'MM') FROM DUAL;
→ 05D 요일(일→1, 토→7)
※ 세션의 NLS 지역에 따라 다름SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL;
→ 3DD 일(1~31) SELECT TO_CHAR(SYSDATE, 'DD') FROM DUAL;
→ 24DDD 년의 날(1~366) SELECT TO_CHAR(SYSDATE, 'DDD') FROM DUAL;
→ 144 -- 365일 기준 144일HH
HH12시간(1~12) SELECT TO_CHAR(SYSDATE, 'HH') FROM DUAL;
→ 04HH24 시간(0~23) SELECT TO_CHAR(SYSDATE, 'HH24') FROM DUAL;
→ 16MI 분(0~59) SELECT TO_CHAR(SYSDATE, 'MI') FROM DUAL;
→ 53SS 초(0~59) SELECT TO_CHAR(SYSDATE, 'SS') FROM DUAL;
→ 19SSSSS 오전 0시부터 경과한 초(0~86399) SELECT TO_CHAR(SYSDATE, 'SSSSS') FROM DUAL;
→63417FF[1..9] - 밀리세컨드
- FF 뒤에 1 - 9 숫자를 설정하여 반환되는 날짜/시간 값의 밀리세컨드 부분의 자릿수를 지정
※ 숫자를 지정하지 않으면 6으로 인식
- 타임스탬프 형식 및 기간 형식에서는 유효하지만 DATE형식에서는 유효하지 않음SELECT TO_CHAR(SYSTIMESTAMP, 'SS.FF3') from DUAL;
→ 15.791DY 요일(MON, 월 등) SELECT TO_CHAR(SYSDATE, 'DY') FROM DUAL;
→ 화DAY 요일(Monday, 월요일 등) SELECT TO_CHAR(SYSDATE, 'DAY') FROM DUAL;
→ 화요일MON 달 이름의 약어(1월~12월, JAN~DEC) SELECT TO_CHAR(SYSDATE, 'MON') FROM DUAL;
→ 5월MONTH 달 이름 (1~12월, JANUARY~DECEMBER) SELECT TO_CHAR(SYSDATE, 'MONTH') FROM DUAL;
→ 5월AM 오전, 오후
※ oracle 설정에 따라 AM,PM으로 반환SELECT TO_CHAR(SYSDATE, 'AM') FROM DUAL;
→ 오후WW 년의 주수(01~53)
첫 번째 주는 1월 1일로 시작, 7일에 종료SELECT TO_CHAR(SYSDATE, 'WW') FROM DUAL;
→ 21 -- 1년 기준 21주W 월의 주수(1~5)
첫 주는 그 달의 1일로 시작, 7일에 종료SELECT TO_CHAR(SYSDATE, 'W') FROM DUAL;
→ 4'개발 > 데이터베이스' 카테고리의 다른 글
[Mysql] Prepared Statement (0) 2024.09.29 [Oracle] 테이블, 데이터 복사 (0) 2023.03.05 [Oracle] 중복 데이터를 찾는 방법 (0) 2023.02.06 [Oracle] Select 튜닝 순서 (0) 2022.01.24 [Oracle] RMAN (0) 2022.01.17