형 변환 함수란, 말 그대로 데이터형을 변환해주는 함수를 말한다.
<형 변환함수>
1. TO_CHAR
- 형식 : TO_CHAR(날짜 or 숫자, '원하는 형태')
- 기능 : 날짜 또는 숫자를 문자로 형 변환한다. 문자는 2번째 인자에서 지정한 형태로 출력된다.
- 2번째 인자인 형태는 아래와 같은 옵션들이 있다.
- 예시에서 SYSDATE(현재시각)은 2020년 2월 4일 오후 10시 49분 06초이다.
구분 | 형태 | 의미 | 예시 | 결과 |
---|---|---|---|---|
년도 | YYYY | 연도. 4자리수로 표시. | TO_CHAR(SYSDATE, 'YYYY') | 2020 |
YY | 연도. 끝 2자리수 표시. | TO_CHAR(SYSDATE, 'YY') | 20 | |
YEAR | 연도의 영문 이름 전체 표시. | TO_CHAR(SYSDATE, 'YEAR') | TWENTY TWENTY | |
월 | MM | 월. 2자리수로 표시. | TO_CHAR(SYSDATE, 'MM') | 02 |
MON | 월. | TO_CHAR(SYSDATE, 'MON') | 2월 | |
MONTH | 월. | TO_CHAR(SYSDATE, 'MONTH') | 2월 | |
일 | DD | 일. 2자리수로 표시. | TO_CHAR(SYSDATE, 'DD') | 04 |
DDTH | 몇번째 일인지. | TO_CHAR(SYSDATE, 'DDTH') | 04th | |
요일 | DAY | 요일. | TO_CHAR(SYSDATE, 'DAY') | 화요일 |
DY | 요일. | TO_CHAR(SYSDATE, 'DY') | 화 | |
D | 요일. | TO_CHAR(SYSDATE, 'D') |
3 (1:일, 2:월, ... 7:토) |
|
시간 | HH24 | 하루를 24시간으로 표시. | TO_CHAR(SYSDATE, 'HH24') | 22 |
HH12 | 하루를 12시간으로 표시. | TO_CHAR(SYSDATE, 'HH12') |
10 (오전 10시, 저녁 10시 둘 다 10으로 표기됨) |
|
HH | 상동 | TO_CHAR(SYSDATE, 'HH') |
10 (오전 10시, 저녁 10시 둘 다 10으로 표기됨) |
|
MI | 분 | TO_CHAR(SYSDATE, 'MI') | 49 | |
SS | 초 | TO_CHAR(SYSDATE, 'SS') | 06 | |
숫자 | 9 |
일반적인 숫자를 나타낸다. 9의 갯수만큼 자릿수 |
TO_CHAR(512,'9999') TO_CHAR(-512,'9999') |
512 (앞에 공백 2개 有) -512 (앞에 공백 1개 有) |
0 | 빈자리를 0으로 채움 | TO_CHAR(512,'00999') | 00512 | |
$ | 앞에 $(달러) 표시를 붙인다. | TO_CHAR(512,'$9999') | $512 (앞에 공백 2개 有) | |
L | 앞에 \(원) 표시를 붙인다. | TO_CHAR(512,'L9999') | ₩512 | |
. | 소수점 이하를 표시 | TO_CHAR(512,'999.99') | 512.00 (앞에 공백 1개 有) | |
, | 천단위 구분기호를 표시 | TO_CHAR(190512,'999,999') | 190,512 |
- 9로 포맷을 주면, 결과값의 자리수는 '9의 갯수+1'가 된다.
2. TO_NUMBER
- 형식 : TO_NUMBER(문자)
- 기능 : 숫자처럼 생겼지만 데이터형이 숫자가 아니라 문자인 데이터를 숫자 데이터형으로 바꿔준다.
SELECT TO_NUMBER('512') FROM DUAL; --결과: 512 (데이터형: 숫자)
3. TO_DATE
- 형식 : TO_DATE(문자)
- 기능 : 날짜처럼 생겼지만 데이터형이 날짜가 아니라 문자인 데이터를 날짜 데이터형으로 바꿔준다.
SELECT TO_DATE('2020/02/04') FROM DUAL; --결과:20/02/04 (데이터형: 날짜)
<데이터 타입>
- 참고로, 오라클에서 사용하는 데이터 타입은 아래와 같다. (오라클 11g 기준)
데이터 타입 | 설명 |
---|---|
CHAR(n) | 문자열 저장. 고정길이의 문자 저장. 1~2000 Byte. 데이터 크기가 고정되어 있기 때문에, 실제로 들어오는 값이 데이터 크기보다 작다고 해도 고정된 크기 n만큼의 용량을 차지한다. |
VARCHAR2(n) | 문자열 저장. 변하는 길이의 문자를 저장('가변형'이라고도 부름) 1~4000 Byte. 할당된 변수가 지정된 VARCHAR의 크기(n)보다 작을 경우 변수만큼의 공간만 차지한다. 그러므로, CHAR 보다 VARCHAR를 쓰는 게 저장용량을 더 절약할 수 있다. |
NUMBER(p,s) | 숫자 저장. p: 전체 자리수. (1~38자리까지 가능) s : 소숫점 이하 자리수. -84~127자리까지 가능. |
DATE | 날짜 저장. 총 7바이트. BC 4712.01.01 ~ AD 9999.12.31 까지 저장 가능. |
LONG | 가변 길이의 문자 저장. 최대 2GB. |
CLOB | 가변 길이의 문자 저장. 최대 4GB. '씨로브' 또는 '씨랍'으로 읽는다. |
BLOB | 가변 길이의 바이너리 데이터 저장. 최대 4GB. |
RAW(n) | 원시 이진 데이터. 최대 2,000바이트. |
LONG RAW(n) | 원시 이진 데이터. 최대 2GB. |
BFILE | 외부 파일에서 저장된 데이터. 최대 4GB. |
↓이 글이 도움이 되었다면 아래 ♡를 눌러주세요 :)
반응형
'Programming > Database(Oracle, SQL)' 카테고리의 다른 글
[Oracle/SQL] 집합연산자 UNION, UNION ALL, INTERSECT, MINUS (0) | 2020.02.18 |
---|---|
[Oracle/SQL] 시퀀스 (Sequence) (0) | 2020.02.16 |
[Oracle/SQL] 날짜함수 - SYSDATE, NEXT_DAY, LAST_DAY 등 (0) | 2020.02.02 |
[Oracle/SQL] 숫자함수 - ROUND, TRUNC, CEIL, MOD (0) | 2020.02.02 |
[Oracle/SQL] 문자함수 - SUBSTR, INSTR, TRIM 등 (0) | 2020.01.30 |
[Oracle/SQL] SQL 연산자, 데이터형 (0) | 2020.01.29 |
[Oracle/SQL] SQL의 종류 - DQL, DML, DDL, DCL, TCL (0) | 2020.01.29 |
[Oracle 기초] 가격정책, CRUD, 스키마 (0) | 2020.01.27 |