본문 바로가기
Database/Oracle

[오라클(Oracle) ] 데이터 타입 변환 ( TO_CHAR / TO_DATE / TO_NUMBER)

by Ali1020 2022. 4. 13.

[오라클(Oracle) ] 데이터 타입 변환 ( to_char / to_date / to_number)

 

1. TO_CHAR 함수

2. TO_DATE 함수

3. TO_NUMBER 함수

 

 

 

1. TO_CHAR 함수

날짜나 숫자를 문자로 변환할 때 또는 날짜 출력 포맷을 변경할 때 사용하는 함수이다.

 

ex) 오늘 날짜(sysdate)와 오늘 날짜를 yyyy-mm-dd형식으로 변환한 형태를 출력

1
2
3
select sysdate,                                ---- 22/04/13
       to_char(sysdate, 'YYYY-MM-DD DAY')      ---- 2022-04-13 WEDNESDAY
from dual;
 
cs

 

(※ 날짜 출력 형식)

--YYYY: 4자리 연도
--YY: 2자리 연도

--MM: 월 2자리
--MON: 월을 알파벳으로( ex. APR)

 

--DD: 일 2자리


--DAY: 요일
--DY: 요일 약어 (ex. SUN)

--AM or PM : 오전 오후 (둘 중 아무거나 써주면 된다)

--HH or HH12 : 1시~12시

--HH24 : 0~24시

--MI : 분

--SS : 초

1
2
3
4
5
6
select sysdate,                                     ---- 22/04/13
       to_char(sysdate, 'YYYY-MM-DD DAY'),          ---- 2022-04-13 WEDNESDAY
       to_char(sysdate, 'YYYY-MON-DD DY'),          ---- 2022-APR-13 WED
       to_char(sysdate - 10'YY-MM-DD DAY'),       ---- 22-04-03 SUNDAY   
       to_char(sysdate, 'YYYY/MM/DD, AM HH:MI:SS')  ---- 2022/04/13, PM 05:00:04
from dual;
 
cs

 

ex) student 테이블에서 학생의 생년월일 중 "년/월"만 출력

1
2
select to_char(birthdate, 'YYYY/MM')
from student;
cs

 

ex) emp 테이블에서 사원의 이름, 입사일, 그리고 입사일을 "년/월/일/요일" 형식으로 출력

1
2
select name, hiredate, to_char(hiredate, 'YYYY/MM/DD DAY')
from emp;
 
cs

 

그 외의 문자 형식 변환

1
2
3
4
select to_char(123456'999,999,999'),       ---- 123,456
       to_char(123456'$999,999,999'),      ---- $123,456
       to_char(123456'000000000')          ---- 000123456
from dual;
 
cs

 

 

 

2. TO_DATE 함수

문자와 숫자로 구성된 문자열 데이터를 날짜 데이터로 변환하는 함수이다. 변환할 문자열 데이터와 해당 문자열 데이터의 날짜 포맷을 입력하여 사용한다.

1
2
3
4
5
select to_date(20220101'YYYYMMDD'),           ---- 22/01/01
       to_date('20220101''YYYYMMDD'),         ---- 22/01/01       
       to_date('APR, 05, 22''MON, DD, YY'),   ---- 22/04/05
       to_date('22. 03. 15''YY. MM. DD')      ---- 22/03/15       
from dual;
 
cs

 

ex) 올해가 몇 일 지났는지 계산하여 출력
1
2
select sysdate - to_date(20220101'YYYYMMDD')
from dual;
 
cs

 

ex) 주민번호에서 생년월일을 추출하여 YYYY/MM/DD 형태로 출력

1
2
select to_char(to_date(substr(idnum, 16), 'YYMMDD'), 'YYYY/MM/DD')   
from student;
 
cs

 

3. TO_NUMBER 함수

숫자로 구성된 문자열을 숫자 데이터로 변환하는 함수이다. 즉, 겉으로 보기에는 숫자지만 문자 데이터로 구성되어 있는 것을 숫자 데이터로 변환하는 것이다.

1
2
3
4
5
6
select to_number('1'),        ---- 1
       to_number('100'),      ---- 100
       to_number('-15'),      ---- -15
       to_number('0.12'),     ---- 0.12
       to_number('-0.12')     ---- -0.12
from dual;
cs

 

 

 

[오라클(Oracle) ] 데이터 타입 변환 ( to_char / to_date / to_number)

-요약-

 

1. TO_CHAR 함수

- 날짜, 숫자를 문자로 변환 or 날짜 출력 포맷 변경하는 함수

- to_char(date, '포맷')

-ex) to_char(sysdate, 'YYYY-MM-DD DAY')  → 2022-04-13 WEDNESDAY

 

2. TO_DATE 함수

- 문자열 데이터를 날짜 데이터로 변환하는 함수

- to_date('문자열 데이터', '포맷')

- to_date('20220101', 'YYYYMMDD') → 22/01/01

 

3. TO_NUMBER 함수

- 숫자로 구성된 문자열을 숫자 데이터로 변환하는 함수

- to_number('100')  →  100

댓글