본문 바로가기
Database/Oracle

[ORACLE] TO_DATE() 함수로 문자열을 날짜로 변환하는 가장 쉬운 방법

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

오라클 TO_DATE() 함수로 문자열을 날짜로 변환하는 가장 쉬운 방법
[Oracle] TO_DATE

 

TO_DATE() 함수는 Oracle SQL에서 문자열(String)을 날짜(Date) 형식으로 변환할 때 사용하는 핵심 함수입니다. 날짜 데이터 처리 시 필수적으로 사용되는 함수로, 다양한 포맷을 지정할 수 있으며, 잘못된 사용 시 오류가 발생하기 쉽기 때문에 정확한 이해가 필요합니다.

1. TO_DATE 함수란?

TO_DATE()는 문자열을 Oracle의 DATE 데이터 타입으로 변환하는 함수입니다. 날짜와 시간이 문자열로 저장되어 있을 경우 이를 연산, 비교, 정렬 등 날짜 함수와 함께 사용하려면 반드시 TO_DATE 변환이 필요합니다.

TO_DATE('2025-06-03', 'YYYY-MM-DD')

2. 기본 문법

TO_DATE(string, format)
  • string: 날짜로 변환할 문자열
  • format: 문자열의 형식을 지정하는 포맷 문자열

3. 주요 포맷 문자

포맷 문자 의미 예시
YYYY 4자리 연도 2025
MM 2자리 월 06
DD 2자리 일 03
HH24 24시간제 시 14
MI 30
SS 59

4. 실무 예제

예제 1: 기본 날짜 변환

SELECT TO_DATE('2025-06-03', 'YYYY-MM-DD') AS result FROM dual;

예제 2: 날짜와 시간 포함

SELECT TO_DATE('2025-06-03 14:30:00', 'YYYY-MM-DD HH24:MI:SS') AS result FROM dual;

예제 3: 잘못된 포맷 사용 시 오류

SELECT TO_DATE('03-06-2025', 'YYYY-MM-DD') FROM dual; -- 오류 발생

5. 응용 활용

예제 4: 날짜 비교


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

예제 5: BETWEEN 절 활용


SELECT *
  FROM sales
 WHERE sale_date BETWEEN TO_DATE('2025-01-01', 'YYYY-MM-DD')
                     AND TO_DATE('2025-06-30', 'YYYY-MM-DD');
  

예제 6: 사용자 입력 문자열 처리


DECLARE
  input_date VARCHAR2(20) := '2025/06/03 10:00:00';
  converted_date DATE;
BEGIN
  converted_date := TO_DATE(input_date, 'YYYY/MM/DD HH24:MI:SS');
  DBMS_OUTPUT.PUT_LINE(converted_date);
END;
  

6. 오류 방지 팁

  • 문자열 포맷과 TO_DATE 포맷이 일치해야 함
  • 날짜 문자열에 공백 또는 잘못된 문자 주의
  • 날짜 계산 전 TO_DATE 처리 필수
  • NLS_DATE_FORMAT 환경 설정의 영향을 받을 수 있음

7. TO_DATE와 관련 함수 비교

함수 기능 반환 타입
TO_DATE 문자열 → 날짜 DATE
TO_CHAR 날짜 → 문자열 VARCHAR2
SYSDATE 현재 시스템 날짜 DATE

8. 결론

Oracle SQL에서 날짜 데이터를 다룰 때 TO_DATE() 함수는 핵심적인 역할을 합니다. 문자열을 명확하고 정확하게 날짜로 변환하는 방법을 익혀두면 데이터 오류를 줄이고, 안정적인 SQL 로직을 구현할 수 있습니다. 다양한 예제를 통해 실전에서 TO_DATE 함수의 응용 능력을 높여보세요.

9. 참고자료

  • Oracle 공식 문서: https://docs.oracle.com
  • Oracle SQL Language Reference 21c
  • SQL 실무 활용 강의 - Oracle 기반 날짜 처리 편
728x90