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

ORA-01855:AM/AM o PM/PM necessario

La tua maschera di formato deve corrispondere al formato della stringa che stai convertendo. Quindi vorresti aggiungere SS nella maschera di formato o rimuovere i secondi dalla stringa

INSERT INTO TBL(ID,START_DATE) 
  values (123, TO_DATE ('3/13/2012 9:22:00 AM', 'MM/DD/YYYY HH:MI:SS AM'))

o

INSERT INTO TBL(ID,START_DATE) 
  values (123, TO_DATE ('3/13/2012 9:22 AM', 'MM/DD/YYYY HH:MI:SS AM'))

Se vuoi accettare una stringa che contiene secondi ma non vuoi memorizzare i secondi nel database (in tal caso Oracle memorizzerà sempre 0 per i secondi), puoi usare il TRUNC funzione

INSERT INTO TBL(ID,START_DATE) 
  values (123, TRUNC( TO_DATE ('3/13/2012 9:22:00 AM', 'MM/DD/YYYY HH:MI:SS AM'), 'MI') )