sql >> Databasteknik >  >> RDS >> Oracle

ORA-01843:inte en giltig månad

I dina kontrollbegränsningar anger du TO_CHAR() med en datumformatmask av 'YYYY/MM/DD HH:MI:SS AM' . Men de värden du anger för intervallet är i två olika format, t.ex.

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

Jag tror att det skulle vara en bra idé att arbeta med datum istället, eftersom strängar inte jämförs som du tror att de gör.

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

Men detta kanske inte är roten till ditt problem. Det kan vara en konvertering i din laddningsprocess, varför vi behöver veta hur du laddar data.




  1. saknar FROM-klausulpost för tabellen

  2. Ta bort en underordnad och en överordnad rad med ett SQL-skript

  3. MySQLdb Python infoga %d och %s

  4. INSERT IGNORE ökar den automatiska inkrementräknaren även om ingen post har lagts till?