본문 바로가기

Database

[ SQL ] TO_CHAR 함수

 

 

1. 문자열 만들기

 

SELECT TO_CHAR(89087) FROM DUAL;

숫자를 문자로 바꾸는 함수

SELECT TO_CHAR(89087) || '원' FROM DUAL;

문자열 + 문자열

 

 

2. 날짜 표시  - TO_CHAR(데이트타입, 원하는 모양)

 

SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL; 

 

SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH:MI:SS') FROM DUAL;

12시간 단위로 표시

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

24시간 단위로 표시

SELECT TO_CHAR(SYSDATE, 'YYYY') || '년 ' || 
		TO_CHAR(SYSDATE, 'MM') || '월 ' || TO_CHAR(SYSDATE, 'DD') || '일'
FROM DUAL
;

 

'YYYY' - 2021(년도) , 'MM' - 05(월), 'DD' - 03(날짜)

SELECT TO_CHAR(SYSDATE, 'DS') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'YEAR') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'MM') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'FMMM')FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'MON') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'RM') FROM DUAL;

현재 월을 로마자로 표시

SELECT TO_CHAR(SYSDATE, 'DD')FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'FMDD')FROM DUAL;

 

 

3. 요일

 

SELECT TO_CHAR(SYSDATE, 'DL') FROM DUAL;

몇 년 몇 월 몇 일 무슨 요일

SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL;

1:SUN ~ 7:SAT

SELECT TO_CHAR(SYSDATE, 'DY') FROM DUAL;

한글 한글자로 요일을 표시

SELECT TO_CHAR(SYSDATE, 'DAY') FROM DUAL;

요일을 한글로 표시

  • 오라클 언어설정이 한국어로 되어있어 한국어로 반환되나 영어로 되어있으면 영문으로 반환됨
  • 영문으로 나올 경우  CASE WHEN 으로 처리 할 수 있겠다.

 

4. 현재 년도 1월 1일 기준으로 

 

SELECT TO_CHAR(SYSDATE, 'DDD') FROM DUAL;

오늘이 몇 일 째이지?

SELECT TO_CHAR(SYSDATE, 'WW') FROM DUAL;

오늘이 1년 단위로 몇주째이지?

SELECT TO_CHAR(SYSDATE, 'W') FROM DUAL;

오늘이 한달 단위로 몇주째이지?

SELECT TO_CHAR(SYSDATE, 'Q') FROM DUAL;

오늘이 몇 분기지?

 

 

5. 1,000,000,000

 

SELECT TO_CHAR('123456', '999,999') FROM DUAL;

문자열 제일 첫번째 자리에 공백이 생김

SELECT TO_CHAR('11123456', 'FM99,999,999') FROM DUAL;

FM 공백 제거

SELECT TO_CHAR('11123456', 'FML99,999,999') FROM DUAL;

한화 표시

 

 

6. 자리 수

 

SELECT TO_CHAR(77, '0000') FROM DUAL;

문자열 제일 첫번째 자리에 공백이 생김

SELECT TO_CHAR(77, 'FM0000') FROM DUAL;

FM 공백 제거

 

 

7. 기타

 

SELECT TO_CHAR(SYSDATE, 'DDSP') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'MMSP') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'YYSP') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'YYYYSP') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'DDTH') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'DDTHSP') FROM DUAL;

 

 

8. YYYY와 RRRR의 차이는..?

 

SELECT TO_CHAR(SYSDATE, 'YYYY') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'RRRR') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'YYTH') FROM DUAL;

 

SELECT TO_CHAR(SYSDATE, 'RRTH') FROM DUAL;

'Database' 카테고리의 다른 글

[ SQL ] 트리거 (TRIGGER)  (0) 2021.05.04
[ SQL ] TRUNC(TRUNCATE) VS ROUND  (0) 2021.05.03
[ SQL ] 문자열 함수들  (0) 2021.05.03
[ SQL ] PROCEDURE(프로시져), PACKAGE(패키지)  (0) 2021.05.02
[ SQL ] FUNCTION(함수)  (0) 2021.05.01