Du har två problem:TO_DATE
inte känner igen några tidszonskomponenter eller bråkdelar av sekunder, du måste konvertera den till tidsstämpel med tidszon och .s
är det inte hur du representerar bråkdelar i alla fall, du behöver .ff
. De giltiga formatmodellerna visas i dokumentationen
.
Att sätta ihop dessa kan du göra:
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
Om du verkligen vill ha det som ett datum måste du bestämma vad du ska göra med tidszonsinformationen - anta antingen att det är lokal tid (egentligen ignorera det), eller konvertera till UTC eller någon annan tidszon. Du kanske verkligen vill behålla det som en tidsstämpel med tidszon.