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