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

ORA-01855:AM/A.M. nebo PM/P.M. Požadované

Vaše maska ​​formátu musí odpovídat formátu řetězce, který převádíte. Takže buď budete chtít přidat SS na masku formátu nebo odeberte sekundy z řetězce

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

nebo

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

Pokud chcete přijmout řetězec, který obsahuje sekundy, ale nechcete ukládat sekundy do databáze (v takovém případě bude Oracle vždy ukládat 0 pro sekundy), můžete použít TRUNC funkce

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


  1. Chyba s dotazem Symfony:Expected Literal, dostal ''

  2. Aktualizace schématu tabulky bez ovlivnění dat v Laravelu

  3. Jak zkontroluji, zda je sloupec prázdný nebo prázdný v MySQL?

  4. PHP PDO načte null