DB/Oracle
[Oracle] TO_CHAR 함수 Example
개쿠
2024. 3. 11. 16:20
728x90
반응형
Oracle TO_CHAR 함수 사용방법
TO_CHAR 함수 - 날짜, 숫자등의 값을 문자열로 변경
날짜포맷 변경하기
포맷 | 설명 | 예제 |
- / , . ; : "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; → 2022 |
YYY 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; → 22 |
Q | 분기(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; → 05 |
D | 요일(일→1, 토→7) ※ 세션의 NLS 지역에 따라 다름 |
SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL; → 3 |
DD | 일(1~31) | SELECT TO_CHAR(SYSDATE, 'DD') FROM DUAL; → 24 |
DDD | 년의 날(1~366) | SELECT TO_CHAR(SYSDATE, 'DDD') FROM DUAL; → 144 -- 365일 기준 144일 |
HH HH12 |
시간(1~12) | SELECT TO_CHAR(SYSDATE, 'HH') FROM DUAL; → 04 |
HH24 | 시간(0~23) | SELECT TO_CHAR(SYSDATE, 'HH24') FROM DUAL; → 16 |
MI | 분(0~59) | SELECT TO_CHAR(SYSDATE, 'MI') FROM DUAL; → 53 |
SS | 초(0~59) | SELECT TO_CHAR(SYSDATE, 'SS') FROM DUAL; → 19 |
SSSSS | 오전 0시부터 경과한 초(0~86399) | SELECT TO_CHAR(SYSDATE, 'SSSSS') FROM DUAL; →63417 |
FF[1..9] | - 밀리세컨드 - FF 뒤에 1 - 9 숫자를 설정하여 반환되는 날짜/시간 값의 밀리세컨드 부분의 자릿수를 지정 ※ 숫자를 지정하지 않으면 6으로 인식 - 타임스탬프 형식 및 기간 형식에서는 유효하지만 DATE형식에서는 유효하지 않음 |
SELECT TO_CHAR(SYSTIMESTAMP, 'SS.FF3') from DUAL; → 15.791 |
DY | 요일(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 |
출처 : https://kr98gyeongim.tistory.com/100
728x90
반응형