Máte dva problémy:TO_DATE
nerozpozná žádné komponenty časového pásma nebo zlomkové sekundy, budete jej muset převést na časové razítko s časovým pásmem a .s
stejně nepředstavujete zlomkové sekundy, potřebujete .ff
. Platné modely formátu jsou zobrazeny v dokumentaci
.
Dát je dohromady můžete:
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
Pokud to opravdu chcete jako datum, budete se muset rozhodnout, co uděláte s informacemi o časovém pásmu – buď předpokládejte, že je to místní čas (v podstatě jej ignorujte), nebo převeďte na UTC nebo jiné časové pásmo. Možná si to budete chtít ponechat jako časové razítko s časovým pásmem.