sql >> Database >  >> RDS >> Oracle

ORA-01821:datumnotatie niet herkende fout voor ISO 8601-datum met lokale tijd

Je hebt twee problemen:TO_DATE geen tijdzonecomponenten of fractionele seconden herkent, moet u deze converteren naar een tijdstempel met tijdzone en .s is toch niet hoe je fractionele seconden voorstelt, je hebt .ff . nodig . De geldige formaatmodellen worden weergegeven in de documentatie .

Als u die samenvoegt, kunt u het volgende doen:

SELECT TO_TIMESTAMP_TZ ('2015-08-26T05:46:30.488+0100',
 'YYYY-MM-DD"T"hh24:mi:ss.ffTZHTZM')
FROM DUAL;

TO_TIMESTAMP_TZ('2015-08-26T05:46:30.488+0100','YYYY-MM-DD"T"HH24:MI:SS.FFTZHTZ
-------------------------------------------------------------------------------
26-AUG-15 05.46.30.488000000 +01:00                                             

Als je het echt als een datum wilt, moet je beslissen wat je met de tijdzone-informatie gaat doen - ofwel aannemen dat het lokale tijd is (in wezen negeren), of omzetten naar UTC of een andere tijdzone. Misschien wil je het echter wel als een tijdstempel met tijdzone houden.



  1. Maak tabellen met dynamische namen via de opgeslagen procedure

  2. Hoe de som van twee kolommen uit twee verschillende tabellen berekenen zonder waar-clausule?

  3. Kalendertabel voor datawarehouse

  4. MVC5 Mqsql-probleem