Conversion function
1. 변환 함수
- 데이터 값의 데이터 타입을 변환할 때 사용
- 암시적 변환 : 오라클 데이터베이스 시스템에 의해 자동으로 변환
- 명시적 변환 : 사용자에 의해 수동으로 변환
2. 자동 데이터 타입 변환
- 자동 데이터 타입 변환 유형
FROM | TO |
---|---|
VARCHAR2 혹은 CHAR | NUMBER(숫자) |
VARCHAR2 혹은 CHAR | DATE(날짜) |
NUMBER | VARCHAR2(문자) |
DATE | VARCHAR2(문자) |
(1) 자동 베이터 타입 변환 사례
SELECT 1 + ‘2’
FROM DUAL;
3. 수동 데이터 타입 변환
- 수동 데이터 타입 변환 함수
함수 | 설명 |
---|---|
TO_CHAR | 숫자, 문자, 날짜 값을 지정 형식의 VARCHAR2 타입으로 변환 |
TO_NUMBER | 문자를 숫자 타입으로 변환 |
TO_DATE | 날짜를 나타내는 문자열을 지정 형식의 날짜 타입으로 변환 |
4. 날짜 및 시간 형식 변환하기
- TO_CHAR
TO_CHAR(날짜 데이터 타입, ‘지정 형식’)
지정 형식 | 설명 | 예 | 결과 |
---|---|---|---|
CC | 세기 | TO_CHAR(SYSDATE, ‘CC’) | 21 |
YYYY or YYY or YY or Y | 연도 | TO_CHAR(SYSDATE, ‘YYYY’) | 2017, 017, 17, 7 |
Y, YYY | 콤마가 있는 연도 | TO_CHAR(SYSDATE, ‘Y, YYY’) | 2,017 |
YEAR | 문자로 표현된 연도 | TO_CHAR(SYSDATE, ‘YEAR’) | TWENTY SEVENTEEN |
BC or AD | BC/AD 지시자 | TO_CHAR(SYSDATE, ‘AD’ | 서기 |
Q | 분기 | TO_CHAR(SYSDATE, ‘Q’) | 4 |
MM | 두 자리 값의 월 | TO_CHAR(SYSDATE, ‘MM’) | 10월 |
MONTH | 아홉 자리를 위해 공백을 추가한 월 이름 | TO_CHAR(SYSDATE, ‘MONTH’) | 10월 |
MON | 세 자리의 약어로 된 월 이름(영문 설정일 경우) | TO_CHAR(SYSDATE, ‘MONTH’) | 10월 |
RM | 로마 숫자 월 | TO_CHAR(SYSDATE, ‘RM’) | X |
WW or W | 연, 월의 주 | TO_CHAR(SYSDATE, ‘WW’) | 40, 1 |
DDD or DD or D | 연, 월, 주의 일 | TO_CHAR(SYSDATE, ‘DD’) | 280, 07, 7 |
DAY | 아홉 자리를 위해 공백을 추가한 요일 이름 | TO_CHAR(SYSDATE, ‘DAY’) | 토요일 |
DY | 세 자리 약어로 된 요일 이름(영문 설정일 경우) | TO_CHAR(SYSDATE, ‘DY’) | 토 |
J | Julian day, BC 4713년 12월 31일 이후의 요일 수 | TO_CHAR(SYSDATE, ‘J’) | 2459044 |
SELECT TO_CHAR(SYSDATE, ‘CC’)
TO_CHAR(SYSDATE, ‘YYYY’)
TO_CHAR(SYSDATE, ‘MM’)
TO_CHAR(SYSDATE, ‘MON’)
TO_CHAR(SYSDATE, ‘YYYYMMDD’) 응용적용1,
TO_CHAR(TO_DATE(‘20171008’), ‘YYYYMMDD’) 응용적용2
FROM dual;
지정 형식 | 설명 |
---|---|
AM or PM | 오전 또는 오후 표시 |
HH / HH12 or HH24 | 시간 표현(1 |
MI | 분(0~59) |
SS | 초(0~59) |
SELECT TO_CHAR(SYSDATE, ‘HH:MI:SS PM’) 시간형식,
TO_CHAR(SYSDATE, ‘YYYY/MM/DD HH:MI:SS PM’) 날짜와시간조합
FROM dual;
요소 | 설명 |
---|---|
/, .,- | 사용문자를 출력 결과에 표현 |
“문자” | 큰따옴표 안의 문자를 출력 결과에 표현 |
SELECT TO_CHAR(SYSDATE, ‘HH-MI-SS PM’) 시간형식,
TO_CHAR(SYSDATE, ‘ “날짜:” YYYY/MM/DD “시각:” HH:MI:SS PM’) 날짜와시각표현
FROM dual;
5. 숫자 형식 변환하기
TO_CHAR(숫자 데이터 타입, ‘지정 형식’)
지정 형식 | 설명 | 예 | 결과 |
---|---|---|---|
9 | 9로 출력 자릿수 지정 | TO_CHAR(salary, ‘99999999’) | 24000(앞에 3칸 띄움) |
0 | 자릿수만큼 0을 출력 | TO_CHAR(salary, ‘09999999’) | 00024000 |
$ | 달러 기호 | TO_CHAR(salary, ‘$9999999’) | $24,000 |
L | 지역 화폐 기호(원) | TO_CHAR(salary, ‘L9999999’) | ₩24,000 |
. | 명시한 위치에 소수점 | TO_CHAR(salary, ‘999999.99’) | 24000.00 |
, | 명시한 위치에 쉼표 | TO_CHAR(salary, ‘9,999,999’) | 24,000 |
TO_NUMBER(number)
- 숫자 타입의 문자열을 숫자 데이터 타입으로 변환하는 함수
- 출력 결과 변하지 않음, 데이터 타입만 변함
SELECT TO_NUMBER(‘123’)
FROM dual;
TO_DATE(문자열, ‘지정 형식’)
- 날짜 문자열을 명시된 날짜로 변환하는 함수
SELECT TO_DATE(‘20200713’, ‘YYMMDD’)
FROM dual;
install_url
to use ShareThis. Please set it in _config.yml
.