본문 바로가기
Database/Oracle

[ORACLE] TO_DATE() 함수로 날짜 문자열을 손쉽게 변환하는 법

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

오라클 TO_DATE() 함수로 날짜 문자열을 손쉽게 변환하는 법
[Oracle] TO_DATE

 

1. TO_DATE 함수란?

오라클의 TO_DATE() 함수는 문자열(String)을 날짜(Date)로 변환할 때 사용되는 함수입니다. 주로 사용자 입력 데이터, 텍스트 칼럼, 로그 데이터를 날짜 타입으로 변환할 때 활용됩니다.

TO_DATE(char[, format])

char: 날짜로 변환할 문자열
format: 문자열이 어떤 날짜 포맷을 따르는지 지정

2. 기본 사용 예제

SELECT TO_DATE('2025-06-05', 'YYYY-MM-DD') FROM DUAL;

결과: 2025년 6월 5일이 날짜 타입으로 반환됩니다.

3. 주요 날짜 포맷 코드

  • YYYY: 연도 (4자리)
  • YY: 연도 (2자리)
  • MM: 월 (01~12)
  • DD: 일 (01~31)
  • HH24: 시 (24시간제)
  • MI: 분
  • SS: 초

예제:

SELECT TO_DATE('2025-06-05 14:30:00', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

4. TO_DATE vs TO_CHAR 비교

TO_DATE: 문자열 → 날짜
TO_CHAR: 날짜 → 문자열

-- TO_CHAR 예제
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

5. 실무 활용 예제

5.1 사용자 입력 데이터 처리

INSERT INTO users (id, created_date)
VALUES ('user001', TO_DATE(:input_date, 'YYYY-MM-DD'));

5.2 날짜 비교 쿼리

SELECT * FROM orders
WHERE order_date >= TO_DATE('2025-01-01', 'YYYY-MM-DD');

5.3 BETWEEN 활용

SELECT * FROM logs
WHERE log_date BETWEEN TO_DATE('2025-01-01', 'YYYY-MM-DD')
                    AND TO_DATE('2025-12-31', 'YYYY-MM-DD');

6. 에러 발생 사례 및 해결 방법

ORA-01843: not a valid month 오류는 포맷과 문자열이 일치하지 않을 때 발생합니다.

-- 잘못된 예제
TO_DATE('2025-13-01', 'YYYY-MM-DD') -- 월이 13이라 오류 발생

올바른 형식으로 입력하거나 유효성 검사를 통해 사전 방지해야 합니다.

7. 주의사항 및 팁

  • 포맷은 대소문자에 민감하지 않음
  • 문자열이 날짜형식과 불일치하면 무조건 오류 발생
  • 날짜 비교 시 TRUNC() 함수로 시간 제거 가능
-- 시간 무시하고 날짜만 비교
SELECT * FROM sales
WHERE TRUNC(sale_date) = TO_DATE('2025-06-05', 'YYYY-MM-DD');

8. 요약 및 마무리

TO_DATE 함수는 오라클에서 날짜형 데이터를 다룰 때 핵심이 되는 함수입니다. 다양한 포맷 옵션과 실전 예제를 통해 익히면 SQL의 가독성과 정확도를 높일 수 있습니다. 특히 날짜 기반 필터링, 조건문 작성, 통계 집계 등에서 자주 쓰이므로 반드시 숙지해 두는 것이 좋습니다.

9. 참고자료 및 출처

728x90