728x90

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. 참고자료 및 출처
- Oracle 공식 문서
- Oracle Tutorial - TO_DATE()
- 실무 경험과 프로젝트 기반 작성 사례
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] CONVERT() 함수로 데이터베이스 문자셋 문제 해결하기 (0) | 2025.06.06 |
|---|---|
| [ORACLE] CAST() 사용법과 실전 예제 : 숫자, 날짜, 문자 변환까지 (0) | 2025.06.06 |
| [ORACLE] TO_CHAR() 함수로 숫자와 날짜 형식 자유자재로 변환하기 (0) | 2025.06.05 |
| [ORACLE] TO_NUMBER() 함수로 문자형 숫자 데이터 안전하게 변환하는 방법 (0) | 2025.06.05 |
| [ORACLE] TZ_OFFSET() 함수 설명 및 시간대 오프셋 구하는 팁 (0) | 2025.06.05 |