티스토리 뷰
포맷 형식(Format)
날짜형이나 숫자형은 표시하고 싶은 형식(Format)을 바꾸고 싶을 때가 있다.
해당 데이터를 가지고 형식을 지정하여 내가 표시하고 싶은 형식으로 변경할 수 있다.
・날짜 포맷
※ TO_CHAR은 날짜 데이터 dateSrc를 날짜 형식 stringFormat에 따라 VARCHAR2 유형의 데이터를 리턴한다.
SQL문을 실시했는 날짜는 2022/05/24임!
그냥 제일 기본적인 날짜 포맷 정보는 YYYY: 년, MM: 월, DD: 일, HH24: 24시간, HH: 12시간, MI: 분, SS:초이다.
포맷 | 설명 | 예제 |
- / , . ; : "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 |
・숫자형 포맷
※ 포맷 형식의 자릿수가 지정한 수치보다 적으면 「#」으로 표시된다.
또 천 단위 콤마를 찍을 때는 ''안에 들어가는 단위 안에 (,)를 써주면 됨.
ex) TO_CHAR(1234567, '0000000') → 1234567 / TO_CHAR(1234567, '0,000,000') → 1,234,567
포맷 | 설명 | 예제 |
0 | 자리수에 못미치면 경우에는 0으로 채움 | SELECT TO_CHAR(1234567, '000,000,000') FROM DUAL; → 001,234,567 SELECT TO_CHAR(1234567, '000,000') FROM DUAL; → ######## SELECT '*' || TO_CHAR(789, '000000') || '*' FROM DUAL; → * 000789* |
9 | 자리수에 못미치면 그 자리를 표시안함 | SELECT TO_CHAR(42.195, '999.99') FROM DUAL; → 42.20 ※↑소수점 이하 자릿수 오버일 경우 반올림 SELECT TO_CHAR(1234567, '999,999,999') FROM DUAL; → 1,234,567 |
FM | 문자열의 앞뒤공백을 제거 | SELECT '*' || TO_CHAR(789, 'FM000000') || '*' FROM DUAL; → *000789* |
S | 「+」 또는 「-」 부호를 붙임 | SELECT TO_CHAR(68000, 'S999,999') FROM DUAL; → +68,000 |
작성 이유
: sql을 작성하다 보면 숫자 형식이나 날짜 형식을 변경하고 싶을 때가 있는데
매번 검색하기 귀찮아서 그냥 한번에 내가 보기 편하게 메모..!
'Oracle > [oracle] 시스템 개발' 카테고리의 다른 글
[Oracle] PL/SQL (실행부/ 예외처리부) (0) | 2022.06.24 |
---|---|
[Oracle] SQL*Plus 명령어(Command) (0) | 2022.06.23 |
[Oracle] 제약조건(CONSTRAINTS) 개념 및 종류, 예제 (0) | 2022.05.25 |
[Oracle] 자주 사용하는 함수 정리(변환 함수, 문자열 조작 함수, 계산 함수, 집합 함수, 날짜 함수 등) (1) | 2022.05.24 |
[Oracle] 데이터 유형(내부 데이터 유형) (0) | 2022.05.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- vba
- REVOKE
- BEGIN절
- 초기화파라미터파일
- in/out/ref 차이점
- 에러
- commit
- pl/sql
- NLog
- PL/SQL 실행문
- 유틸리티
- USER_SYS_PRIVS
- 유틸리티에러
- DBA_SYS_PRIVS
- in/out/ref 공통점
- DECLARE절
- PL/SQL 예외처리문
- 동기통신
- 후나빙
- in/out/ref 예제
- rollback
- TrimEnd
- grant
- in/out/ref
- VB.Net
- C#
- 참조전달
- EXCEPTION절
- Oracle
- 시간차이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함