2つの問題があります:TO_DATE
タイムゾーンコンポーネントまたは秒の小数部を認識しないため、タイムゾーンと.s
を使用してタイムスタンプに変換する必要があります。 とにかく小数秒を表す方法ではありません。.ff
が必要です。 。有効なフォーマットモデル
それらをまとめると、次のことができます。
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
本当に日付として使用する場合は、タイムゾーン情報をどのように処理するかを決定する必要があります。現地時間であると想定するか(基本的に無視してください)、UTCまたはその他のタイムゾーンに変換します。ただし、タイムゾーン付きのタイムスタンプとして保持することをお勧めします。