Hai due problemi:TO_DATE
non riconosce alcun componente del fuso orario o frazioni di secondi, dovrai convertirlo in timestamp con fuso orario e .s
non è comunque come rappresenti i secondi frazionari, hai bisogno di .ff
. I modelli di formato validi sono riportati nella documentazione
.
Mettendoli insieme puoi fare:
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
Se la vuoi davvero come data, dovrai decidere cosa fare con le informazioni sul fuso orario:supponi che sia l'ora locale (essenzialmente ignorala) o converti in UTC o in qualche altro fuso orario. Potresti davvero volerlo mantenere come timestamp con il fuso orario.