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 시간 표현(112시 똫는 023시)
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;

자료출처: 모두의 SQL

You need to set install_url to use ShareThis. Please set it in _config.yml.

Comments