Sie haben zwei Probleme:TO_DATE
keine Zeitzonenkomponenten oder Sekundenbruchteile erkennt, müssen Sie es in einen Zeitstempel mit Zeitzone und .s
konvertieren stellen Sie Sekundenbruchteile sowieso nicht dar, Sie brauchen .ff
. Die gültigen Formatmodelle werden in der Dokumentation gezeigt
.
Wenn Sie diese zusammenfügen, können Sie Folgendes tun:
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
Wenn Sie es wirklich als Datum haben möchten, müssen Sie entscheiden, was Sie mit den Zeitzoneninformationen tun möchten - entweder davon ausgehen, dass es Ortszeit ist (im Wesentlichen ignorieren), oder in UTC oder eine andere Zeitzone konvertieren. Vielleicht möchten Sie es aber wirklich als Zeitstempel mit Zeitzone behalten.