sql >> Databáze >  >> RDS >> Oracle

ORA-01843:neplatný měsíc

Ve svých kontrolních omezeních zadáte TO_CHAR() s maskou formátu data 'YYYY/MM/DD HH:MI:SS AM' . Ale hodnoty, které zadáte pro rozsah, jsou ve dvou různých formátech, např.

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

Myslím, že by bylo dobré místo toho pracovat s daty, protože řetězce se nebudou porovnávat tak, jak si myslíte.

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')

To však nemusí být kořenem vašeho problému. Může to být konverze v procesu načítání, a proto potřebujeme vědět, jak načítáte data.




  1. Příkaz aktualizace MySQL odpovídá pouze prvnímu řádku

  2. RedShift - zatížení CSV s line Break

  3. Je $_SESSION bezpečný před SQL injects?

  4. Správný způsob, jak zrcadlit nastavení PHP/MySQL