
SQL을 작성하다 보면 데이터 타입을 변환해야 하는 상황이 자주 발생합니다.
예를 들어 날짜를 문자로 바꾸거나, 문자를 숫자로 변환해야 할 때가 있습니다.
오라클에서는 이러한 타입 변환을 위해 변환 함수(Conversion Function) 를 제공합니다.
대표적인 세 가지는 TO_CHAR, TO_DATE, TO_NUMBER 입니다.
이번 글에서는 각 함수의 특징과 사용법을 실무 예제와 함께 정리해보겠습니다.
1. 오라클 변환 함수란?
오라클의 변환 함수는 데이터 타입 간의 변환을 수행합니다.
- TO_CHAR : 숫자나 날짜 → 문자
- TO_DATE : 문자 → 날짜
- TO_NUMBER : 문자 → 숫자
이 함수들을 이해하면 데이터 출력 형식을 조정하거나 날짜 연산을 쉽게 처리할 수 있습니다.
2. 문자 변환 함수 TO_CHAR
TO_CHAR는 숫자나 날짜를 문자형(CHAR/VARCHAR2) 으로 변환합니다.
📘 기본 문법
TO_CHAR(value [, format])
📘 날짜를 문자로 변환
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS NOW_DATE
FROM DUAL;
→ 2025-10-16 14:32:10 형태로 표시됩니다.
📘 숫자를 문자로 변환
SELECT TO_CHAR(1234567, '9,999,999') FROM DUAL;
→ 1,234,567 형태로 출력됩니다.
💡 TO_CHAR는 출력 포맷을 지정할 수 있어 화면 표시나 로그 출력 시 자주 사용됩니다.
3. 날짜 변환 함수 TO_DATE
TO_DATE는 문자 데이터를 날짜로 변환할 때 사용됩니다.
문자열을 날짜 타입으로 바꾸면 날짜 연산, 비교, 정렬이 가능해집니다.
📘 기본 문법
TO_DATE(char [, format])
📘 예시
SELECT TO_DATE('2025-10-16', 'YYYY-MM-DD') AS CONVERTED_DATE
FROM DUAL;
→ '2025-10-16' 문자열이 DATE 타입으로 변환됩니다.
📘 시간까지 포함하는 예시
SELECT TO_DATE('2025-10-16 15:30:00', 'YYYY-MM-DD HH24:MI:SS')
FROM DUAL;
⚠️ 문자열 포맷과 실제 데이터 포맷이 다르면 변환 오류가 발생하므로 주의해야 합니다.
4. 숫자 변환 함수 TO_NUMBER
TO_NUMBER는 문자를 숫자로 변환할 때 사용됩니다.
주로 문자열 형태의 숫자 데이터를 계산 가능하도록 바꿀 때 유용합니다.
📘 기본 문법
TO_NUMBER(char [, format])
📘 예시
SELECT TO_NUMBER('1,234,567', '9,999,999') + 10 AS RESULT
FROM DUAL;
→ 1234577 결과를 반환합니다.
💡 입력 문자열에 쉼표나 포맷이 포함되어 있으면 포맷 문자열을 반드시 지정해야 합니다.
5. 실무에서 자주 쓰이는 변환 함수 조합 예시
📘 문자열로 된 날짜 비교 처리
SELECT *
FROM ORDERS
WHERE TO_DATE(ORDER_DATE_STR, 'YYYYMMDD') >= TO_DATE('20250101', 'YYYYMMDD');
📘 숫자 포맷 변환 후 표시
SELECT TO_CHAR(SALARY, '999,999,999') AS SALARY_FORMAT
FROM EMPLOYEES;
📘 날짜 차이 계산
SELECT TO_DATE('2025-12-31', 'YYYY-MM-DD') - TO_DATE('2025-01-01', 'YYYY-MM-DD') AS DAYS_DIFF
FROM DUAL;
→ 결과는 364일로 계산됩니다.
✅ 마무리
TO_CHAR, TO_DATE, TO_NUMBER는 오라클 SQL에서 가장 많이 사용되는 기본 변환 함수입니다.
- TO_CHAR : 날짜·숫자 → 문자
- TO_DATE : 문자 → 날짜
- TO_NUMBER : 문자 → 숫자
포맷을 올바르게 지정하면 데이터 변환 에러를 방지하고,
조회 결과를 가독성 높게 표시할 수 있습니다.
오라클을 다루는 개발자라면 반드시 숙지해야 할 핵심 함수입니다.