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.