Oracle
 sql >> Database >  >> RDS >> Oracle

ORA-01843:mese non valido

Nei tuoi vincoli di controllo specifichi TO_CHAR() con una maschera di formato data di 'YYYY/MM/DD HH:MI:SS AM' . Ma i valori che specifichi per l'intervallo sono in due formati diversi, ad esempio

'2005/01/01 00:00:01 AM' AND '12/31/2015 11:59:59 PM'

Penso che sarebbe una buona idea lavorare con le date, poiché le stringhe non si confronteranno nel modo in cui pensi.

constraint rental_rental_date check(rental_date) 
    between to_date('2005/01/01 00:00:01 AM', 'YYYY/MM/DD HH:MI:SS AM') and
            to_date('2015/12/31 11:59:59 PM', 'YYYY/MM/DD HH:MI:SS AM')

Tuttavia questa potrebbe non essere la radice del tuo problema. Potrebbe trattarsi di una conversione nel processo di caricamento, motivo per cui abbiamo bisogno di sapere come stai caricando i dati.