[오라클(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, 1, 6), '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
댓글