RDB/Oracle

[ORACLE] 타입 변환 함수(TO_CHAR, TO_DATE, TO_NUMBER)

씨네 2021. 12. 28. 12:25
728x90

이제 단일행 항수중 타입 변환 함수와 기타 함수가 남아 있습니다.

이번 포스팅에서는 타입 변환 함수를 알아보겠습니다.

TO_CHAR, TO_DATE, TO_NUMBER를 알아보기 전에 NUMBER형에서 DATE로 변환될수 없습니다.

마찬가지로 DATE형태에서 NUMBER로 변환될 수 없습니다.

해당 내용을 설명하는 그림입니다.

1. TO_CHAR

TO_CHAR(입력타입[, 형식])

1-1. 숫자 표현방식

형 식
설 명
9
자리 수 지정
0
남는 자리를 0으로 표시
$ 또는 L
통화기호 표시
. 또는 ,
지정한 위치에 . 또는 , 표시
EEEE
과학 지수 표기법
SELECT TO_CHAR(1234,'99999') FROM DUAL;

SELECT TO_CHAR(1234,'00000') FROM DUAL;

SELECT TO_CHAR(1234,'L9999') FROM DUAL;

SELECT TO_CHAR(1234,'99,999') FROM DUAL;

SELECT TO_CHAR(1234,'9.9EEEE') FROM DUAL;

1-2 날짜 표현 형식

형 식
설 명
YYYY / YY / YEAR
년도 (4자리숫자 / 뒤 2자리 숫자 / 문자)
MONTH / MON / MM / RM
달 (이름 / 약어 / 숫자 / 로마기호)
DDD / DD / D
일 (1년 기준 / 1달 기준 / 1주 기준)
Q
분기 (1, 2, 3, 4)
DAY / DY
요일 (이름 / 약어 이름)
HH(12) / HH24
12시간 / 24시간
AM / PM
오전 / 오후
MI
분 (0~59)
SS
초 (0~59)

*FM : 0 or 공백 제거

SELECT TO_CHAR(SYSDATE, 'PM HH24:MI:SS') FROM DUAL;

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

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

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

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

2. TO_DATE

TO_DATE(입력 타입[, 형식])

SELECT TO_DATE('20100101','YYYYMMDD') FROM DUAL;

SELECT TO_CHAR(TO_DATE('20100101','YYYYMMDD'),'YYYY,MON') FROM DUAL;

SELECT TO_CHAR( 
TO_DATE('041030 143000', 'YYMMDD HH24MISS'), 
'YY-MM-DD PM FMHH:MI:SS') 
FROM DUAL;

3. TO_NUMBER

TO_NUMBER(입력 타입[, 형식])

-변환되었을 때 숫자인 문자열만 가능

ex) '100' -> 100 (문자열 100을 숫자 100으로)

SELECT ENAME, 
TO_NUMBER(SUBSTR(HIREDATE,1,2)) AS 년, 
TO_NUMBER(SUBSTR(HIREDATE,4,2)) AS 월 
FROM EMP;
728x90