728x90

1. TO_TIMESTAMP 함수란?
TO_TIMESTAMP() 함수는 문자열을 오라클의 TIMESTAMP 형식으로 변환하는 함수입니다. TIMESTAMP는 DATE 타입보다 정밀도가 높아, 시간 정보(시, 분, 초, 마이크로초)까지 표현할 수 있습니다.
TO_TIMESTAMP(char [, format])
- char: 변환할 문자열
- format: 문자열의 날짜 및 시간 포맷 (선택)
2. 기본 사용 예제
SELECT TO_TIMESTAMP('2025-06-05 14:30:00', 'YYYY-MM-DD HH24:MI:SS')
FROM DUAL;
이 쿼리는 문자열을 TIMESTAMP 데이터 타입으로 변환합니다.
3. 주요 포맷 코드 정리
- YYYY: 4자리 연도
- MM: 2자리 월
- DD: 2자리 일
- HH24: 24시간제 시
- MI: 분
- SS: 초
- FF: 소수점 이하 초 (마이크로초)
SELECT TO_TIMESTAMP('2025-06-05 14:30:00.123456',
'YYYY-MM-DD HH24:MI:SS.FF6')
FROM DUAL;
4. DATE vs TIMESTAMP 비교
| 구분 | DATE | TIMESTAMP |
|---|---|---|
| 정밀도 | 초 단위까지 | 소수점 이하 마이크로초까지 |
| 기본 크기 | 7바이트 | 11바이트 이상 |
| 활용 예 | 일반적인 시간 저장 | 트랜잭션 타임스탬프, 로깅 |
5. 실무 활용 예제
5.1 트랜잭션 기록 저장
INSERT INTO transaction_log (id, log_time)
VALUES ('TX123', TO_TIMESTAMP('2025-06-05 10:00:15.512300', 'YYYY-MM-DD HH24:MI:SS.FF6'));
5.2 시간 간격 비교
SELECT * FROM sensor_data
WHERE read_time >= TO_TIMESTAMP('2025-06-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS');
5.3 시간 포맷 변환 후 출력
SELECT TO_CHAR(TO_TIMESTAMP('2025-06-05 14:30:00', 'YYYY-MM-DD HH24:MI:SS'),
'YYYY-MM-DD HH24:MI:SS.FF3')
FROM DUAL;
6. 에러 발생 사례 및 해결 방법
ORA-01861: literal does not match format string 오류는 문자열과 포맷이 일치하지 않을 때 발생합니다.
-- 오류 예시
SELECT TO_TIMESTAMP('2025/06/05', 'YYYY-MM-DD') FROM DUAL; -- 포맷 불일치
해결 방법: 입력 문자열과 포맷 문자열을 일치시켜야 합니다.
7. 성능과 최적화 팁
- WHERE 절에서
TO_TIMESTAMP()사용 시 인덱스가 무시될 수 있음 BIND 변수와 함께 사용하면 성능 향상 가능- 자주 사용하는 포맷은 별도 함수 또는 VIEW로 추상화 추천
8. TIMESTAMP 관련 함수 확장
CURRENT_TIMESTAMP: 현재 시간 반환 (세션 타임존 고려)SYSTIMESTAMP: 시스템의 현재 타임스탬프 반환EXTRACT(): 타임스탬프에서 연/월/일/시/분 추출
SELECT EXTRACT(SECOND FROM SYSTIMESTAMP) FROM DUAL;
9. 결론
오라클 TO_TIMESTAMP() 함수는 시간 정밀도가 필요한 환경에서 매우 중요한 함수입니다. 트랜잭션 로그, 센서 데이터, 고속 거래 시스템 등에서 정확한 시간 기록과 비교를 위해 반드시 이해하고 활용해야 합니다. 다양한 포맷 코드와 실무 예제를 익히면 복잡한 시간 데이터를 효과적으로 처리할 수 있습니다.
10. 참고자료 및 출처
- Oracle 공식 문서
- Oracle Tutorial - TO_TIMESTAMP()
- 기업 트랜잭션 로그 분석 및 데이터 웨어하우징 프로젝트 경험
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] TO_NCLOB() 함수로 한글 데이터 안정 저장하기 (0) | 2025.06.06 |
|---|---|
| [ORACLE] TO_CLOB() 함수로 VARCHAR2를 CLOB으로 안전하게 변환하기 (0) | 2025.06.06 |
| [ORACLE] CONVERT() 함수로 데이터베이스 문자셋 문제 해결하기 (0) | 2025.06.06 |
| [ORACLE] CAST() 사용법과 실전 예제 : 숫자, 날짜, 문자 변환까지 (0) | 2025.06.06 |
| [ORACLE] TO_DATE() 함수로 날짜 문자열을 손쉽게 변환하는 법 (0) | 2025.06.06 |