데이터의 형식을 변환하는 함수를 이용하여 숫자나 날짜 데이터를 문자 데이터로 변환하거나 거꾸로 문자 데이터를 날짜 데이터나 숫자 데이터로 변환할 수 있다.
조인(뒤에서 다룸)을 하거나 컬럼이 많은 테이블을 다루다 보면 연산할 때 데이터 타입이 같아야 하는데 다른 것을 인지하지 못하고 있다가 연산을 해서 오류를 만나 놀라게 될 경우가 있다. 이때 데이터 타입을 확인하고 데이터 변환 함수로 데이터 타입을 같게 만들어주면 오류를 해결할 수 있다.
함수 | 기능 |
TO_CHAR(날짜/숫자, 형식) | 숫자/날짜 데이터를 문자 데이터로 변환한다. |
TO_DATE(문자, 형식) | 문자 데이터를 날짜 데이터로 변환한다. |
TO_NUMBER | 문자 데이터를 숫자 데이터로 변환한다. |
문자형 변환 함수
TO_CHAR 함수는 숫자나 날짜를 지정한 형식의 문자열로 변환하는 함수이다. 이 함수는 일반적으로 데이터의 출력 형식을 지정하는 데 사용된다. 데이터의 출력 형식이 미리 지정한 규칙을 따르지 않는 경우 프로그램 개발 과정에서 오류가 발생할 수 있기 때문에 데이터 변환 함수를 사용하여 출력 형식을 지정하는 것이다.
ex. TO_CHAR 함수를 이용해서 현재 날짜를 다양한 형식으로 변환해보자.
SELECT TO_CHAR(sysdate, 'YYYY/MM/DD') 날짜_1,
TO_CHAR(sysdate, 'YY/MM/DD:HH24:MI:SS') 날짜_2,
TO_CHAR(sysdate, 'YYYY MON DD DAY') 날짜_3
FROM dual;
날짜형 변환 함수
TO_DATE 함수는 문자형 데이터를 지정된 형식을 이용해 날짜로 변환하며, 오라클 데이터베이스 시스템이 날짜 정보를 정확히 해석하도록 돕는 역할을 한다. 예를 들어 ‘19/08/07’라는 데이터가 2019년 8월 7일인지 2007년 8월 19일인지 데이터만을 보고는 해석하기 어렵기 때문에 TO_DATE를 이용해서 날짜를 명확히 표현할 수 있다.
ex. 2016년 3월 이전에 판매된 모든 판매 내용을 조회하라.
SELECT *
FROM 구매
WHERE 구매일 < TO_DATE('2016-03-01', 'YY/MM/DD');
숫자형 변환 함수
TO_NUMBER 함수는 문자형 데이터를 숫자형 데이터로 변환하는 함수이다. 대부분의 경우 TO_NUMBER 함수를 사용하지 않아도 오라클 데이터베이스 시스템에 의해 숫자로 읽을 수 있는 문자열은 숫자 데이터 타입으로 자동으로 변환된다. 그러나, 데이터 타입을 명확하게 하여 오류 없는 연산을 하기 원한다면 숫자형 변환 함수를 별도로 사용하는 것이 바람직하다.
ex. TO_NUMBER 함수를 이용하여 문자형 데이터를 숫자형 데이터로 변환하여 연산을 해보자.
SELECT TO_NUMBER('1234') + 100
FROM dual;
This post was written based on what I read and studied the book below.
댓글