[Oracle] 형 변환 함수 (type conversion function)
오라클에는 자료의 자료형(Data Type)을 바꿔주는 함수가 있다.
숫자나 날짜 데이터를 문자 데이터로 문자형(CHAR) 데이터는 숫자형(NUMBER) 데이터나 날짜형(DATE) 데이터로 변환이 가능하다.
즉 문자형 데이터를 중심으로 숫자형과 날짜형 데이터로의 변환이 가능한 것이다.
그 외에 숫자로 구성된 문자형 데이터 (EX '10')와 숫자형 데이터를 연산 시 자동으로 숫자형 데이터로 변환되는
묵시적 또는 암시적 형 변환(implicit type conversion)이 있다.
형 변환 함수 참고 : Do it! 오라클로 배우는 데이터베이스 입문
종류 | 설명 |
TO_CHAR | 숫자 또는 날짜 데이터를 문자 데이터로 변환 |
TO_NUMBER | 문자 데이터를 숫자 데이터로 변환 |
TO_DATE | 문자 데이터를 날짜 데이터로 변환 |
TO_CHAR
TO_CHAR 함수는 숫자 또는 날짜 데이터를 문자 데이터로 변환하는 함수이다.
주로 날짜 데이터를 문자 데이터토 변환한데 많이 사용하며 기본형은 아래와 같다.
TO_CHAR([날짜 데이터(필수)], '[출력되길 원하는 문자 형태(필수)']) - TO_CHAR 기본 형
출력되길 원하는 문자 형태는 아래 주소의 오라클에서 제공하는 포맷 형태를 참고하면 된다.
https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements004.htm#SQLRF00210
Format Models
The total length of a datetime format model cannot exceed 22 characters. The default datetime formats are specified either explicitly with the NLS session parameters NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT, and NLS_TIMESTAMP_TZ_FORMAT, or implicitly with the
docs.oracle.com
(Oracle 11g format Models)
위 사진의 SQL문은 현재 날짜 데이터를 YYYY/MM/DD HH24:MI:SS 포맷 형태의 문자 데이터로 바꾸어 출력한 예제이다.
YYYY/MM/DD는 4자리 수 연도와 2 자릿수 월, 2자리 수 일을 나타내며 HH24:MI:SS는 각각 시, 분, 초를 나타낸다.
TO_NUMBER
TO_NUMBER 함수는 문자형 데이터를 숫자형 데이터로 변환할 때 사용하는 함수이다.
TO_NUMBER('[문자열 데이터(필수)]', [인식될 숫자 형태(필수)]') - TO_NUMBER 기본 형
위 사진의 예제는 '1,300'과 '1,500' 이라는 문자형 데이터를 '999,999' 포맷으로 하는 숫자 데이터로 변경하여 그 값들의 빼기 연산을 한 SQL문이다.
여기서 '999,999' 포맷의 9는 숫자 한자리를 의미하며 빈자리 수는 채우지 않는다.
만약 포맷으로 '0000'의 데이터가 오면 빈 자리를 0으로 채운다.
포맷 형식 참고 : Do it! 오라클로 배우는 데이터베이스 입문
형식 | 설명 |
9 | 숫자의 한 자리를 의미(빈 자리를 채우지 않음) |
0 | 빈 자리를 0으로 채움을 의미 |
$ | 달러($) 표시를 붙여 출력 |
L | L(Locale) 지역 화폐 단위 기호를 붙여서 출력 |
. | 소수점을 표시 |
, | 천 단위의 구분 기호를 표시 |
T0_DATE
TO_DATE 함수는 문자형 데이터를 날짜형 데이터로 변환해주는 함수이다.
TO_DATE('[문자열 데이터(필수)]', '[인식될 날짜 형태(필수)]') - TO_DATE 기본 형
위 사진의 예제는 '2020-02-20'과 '20200220' 이라는 문자열 데이터를 'YYYY-MM-DD' 형태의 날짜 데이터로 변환하는 예제이다.
결과는 둘 다 같은 결과가 출력된다.
본 포스팅은 필자가 공부한 내용을 정리한 것으로 오류가 존재할 수 있습니다.
참고: Do it! 오라클로 배우는 데이터베이스 입문
![]() |
|