Tiene dos problemas:TO_DATE
no reconoce ningún componente de zona horaria o fracciones de segundo, tendrá que convertirlo a marca de tiempo con zona horaria y .s
no es como representas las fracciones de segundo de todos modos, necesitas .ff
. Los modelos de formato válidos se muestran en la documentación
.
Juntándolos puedes hacer:
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
Si realmente lo desea como una fecha, deberá decidir qué hacer con la información de la zona horaria:suponga que es la hora local (esencialmente ignórela) o conviértala a UTC o alguna otra zona horaria. Sin embargo, es posible que desee mantenerlo como una marca de tiempo con zona horaria.