22008: datetime_field_overflow
PostgreSQLNe demek?
Bir tarih/zaman değeri hesaplanırken ya da ayrıştırılırken, alanlardan biri geçerli aralığın dışına taştı. Örneğin ay 13, gün 32 gibi olanaksız bir bileşen ya da desteklenen zaman aralığını aşan bir sonuç üretildi.
Neden olur?
Geçersiz bir tarih girişi (ör. '2026-02-30'), aralık dışı bir bileşen, ya da bir INTERVAL toplaması sonucu desteklenen tarih aralığının aşılması. Yanlış biçim/locale ile ayrıştırma ya da kullanıcı girdisinin doğrulanmadan eklenmesi tipik nedendir.
Nasıl çözülür?
Uygulama tarafında tarih girdilerini eklemeden önce doğrulayın ve doğru biçimde (tercihen ISO 8601: YYYY-MM-DD) gönderin. Ayrıştırma için TO_DATE/TO_TIMESTAMP kullanırken biçim maskesini girdilerle eşleştirin. Aritmetik sonuçların desteklenen tarih aralığında kalmasını sağlayın; şüpheli değerleri sınır kontrolünden geçirin.