Programming/Database (Oracle, SQL)

[Oracle/SQL] 형 변환함수 - TO_CHAR, TO_NUMBER, TO_DATE

Sujin Lee (Daisy) 2020. 2. 4. 21:38

형 변환 함수란, 말 그대로 데이터형을 변환해주는 함수를 말한다. 

 

 

<형 변환함수>

 

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.

 

 

↓이 글이 도움이 되었다면 아래 ♡를 눌러주세요 :) 

반응형