22008: datetime_field_overflow
PostgreSQL의미
날짜/시간 값을 계산하거나 파싱하는 중 필드 중 하나가 유효 범위를 벗어났다. 예를 들어 13월이나 32일 같은 불가능한 구성 요소, 또는 지원되는 시간 범위를 넘는 결과가 생성되었다.
원인
유효하지 않은 날짜 입력(예: '2026-02-30'), 범위를 벗어난 구성 요소, 또는 지원되는 날짜 범위를 초과하는 INTERVAL 덧셈이 원인이다. 잘못된 형식/로캘로 파싱하거나 검증되지 않은 사용자 입력을 삽입하는 것이 전형적인 원인이다.
해결 방법
삽입 전에 애플리케이션에서 날짜 입력을 검증하고 올바른 형식으로 보낸다(가능하면 ISO 8601: YYYY-MM-DD). TO_DATE/TO_TIMESTAMP로 파싱할 때는 형식 마스크를 입력에 맞춘다. 산술 결과를 지원되는 날짜 범위 내로 유지하고, 의심스러운 값은 범위 검사를 거친다.