Din formatmask måste matcha formatet för strängen du konverterar. Så du vill antingen lägga till SS
till formatmasken eller ta bort sekunderna från strängen
INSERT INTO TBL(ID,START_DATE)
values (123, TO_DATE ('3/13/2012 9:22:00 AM', 'MM/DD/YYYY HH:MI:SS AM'))
eller
INSERT INTO TBL(ID,START_DATE)
values (123, TO_DATE ('3/13/2012 9:22 AM', 'MM/DD/YYYY HH:MI:SS AM'))
Om du vill acceptera en sträng som innehåller sekunder men du inte vill lagra sekunderna i databasen (i vilket fall Oracle alltid lagrar 0 för sekunderna), kan du använda TRUNC
funktion
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') )