본문 바로가기
Database/Oracle

[ORACLE] TO_CHAR() 함수로 날짜를 문자열로 변환하는 실무 팁과 예제

by Papa Martino V 2025. 6. 4.
728x90

오라클 TO_CHAR() 함수로 날짜를 문자열로 변환하는 실무 팁과 예제
[Oracle] TO_CHAR

 

Oracle의 TO_CHAR() 함수는 날짜(Date)나 숫자(Number) 데이터를 문자열로 변환할 수 있는 강력한 형변환 함수입니다. 이 글에서는 TO_CHAR 함수의 기본 구조, 날짜 및 숫자 포맷 사용법, 실무 예제, 주의사항 등을 상세하게 설명합니다.

1. TO_CHAR 함수란?

TO_CHAR(expr, format) 구조로 사용되며, expr는 날짜나 숫자 타입의 표현식입니다. format은 출력될 문자열의 형식을 정의합니다.

2. 날짜(Date) 포맷 예제

예제 1: 기본 날짜 출력

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') AS today FROM dual;

결과 예시: 2025-06-03

예제 2: 요일 및 시간 표시

SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD DY HH24:MI:SS') FROM dual;

주요 날짜 포맷 기호

  • YYYY: 연도 (4자리)
  • MM: 월 (2자리)
  • DD: 일 (2자리)
  • HH24: 시간 (24시간제)
  • MI: 분
  • SS: 초
  • DY: 요일 축약형 (예: TUE)

3. 숫자(Number) 포맷 예제

예제 3: 천 단위 구분 쉼표 추가

SELECT TO_CHAR(1234567.89, '9,999,999.99') FROM dual;

결과: 1,234,567.89

예제 4: 통화 기호 붙이기

SELECT TO_CHAR(1000, '$9,999') FROM dual;

결과: $1,000

숫자 포맷 기호 정리

  • 9: 숫자 자리 표시 (0은 생략 가능)
  • 0: 숫자 자리 표시 (0으로 채움)
  • ,: 천 단위 구분 기호
  • .: 소수점 구분자
  • $: 통화 기호
  • L: 로컬 통화 기호

4. 날짜와 숫자 함께 포맷팅

예제 5: 결제 내역 로그


SELECT '결제 일시: ' || TO_CHAR(payment_date, 'YYYY-MM-DD HH24:MI:SS') ||
       ' 금액: ' || TO_CHAR(amount, '9,999,999') || '원'
  FROM payment_log;
  

5. 실무 활용 팁

  • 보고서 출력 시 TO_CHAR를 사용하면 가독성 높은 데이터 제공 가능
  • TO_DATE와 함께 활용 시 입력 → 출력 전체 포맷 제어 가능
  • 단, WHERE 조건문에서는 포맷된 문자열로 비교하지 않도록 주의

6. 자주 발생하는 오류와 주의사항

  • 포맷 문자열이 잘못되면 ORA-01821 오류 발생 가능
  • 숫자 포맷 시 전체 자릿수를 고려하지 않으면 '#' 출력 발생
  • 날짜 데이터는 NLS 설정 영향을 받을 수 있음

7. 요약 및 결론

TO_CHAR() 함수는 Oracle에서 날짜와 숫자 데이터를 문자열로 변환하는 데 핵심적인 역할을 합니다. 다양한 포맷 옵션을 숙지하고 상황에 맞는 포맷을 적용함으로써 SQL 쿼리의 출력 품질과 가독성을 크게 향상할 수 있습니다.

8. 참고자료

  • Oracle 공식 문서: https://docs.oracle.com
  • Oracle SQL Language Reference 21c
  • 실무 SQL 포맷팅 가이드 by PL/SQL 전문가 협회
728x90