おそらく、固定されたTとZは、通常ではないため、少し混乱しています日時形式モデル 要素。ただし、ドキュメント 言う:
したがって、TとZを"T"
のように二重引用符で囲みます。 および"Z"
、フォーマットモデルで。
タイムゾーンに関心がない場合は、を使用できます。 to_timestamp()
機能
:
to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')
または、タイムゾーンを使用したい場合は、を使用できます。 to_timestamp_tz()
機能
、デフォルトで現在のセッションタイムゾーンになります(ここで実際に指定していないため、ZはZulu / UTCとして解釈されません):
to_timestamp_tz('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')
タイムゾーンを指定し、UTCを指定する場合は、 from_tz()
機能
:
from_tz(to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')), 'UTC')
それらが生み出す違いを確認するには、セッションのタイムゾーンをデモとして指定します。
alter session set time_zone = 'America/New_York';
select to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"') as no_tz,
to_timestamp_tz('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"') as default_tz,
from_tz(to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"'), 'UTC') as utc_tz
from dual;
NO_TZ
--------------------------------------------------
DEFAULT_TZ
--------------------------------------------------
UTC_TZ
--------------------------------------------------
24-MAR-15 07.08.24.000000000
24-MAR-15 07.08.24.000000000 AMERICA/NEW_YORK
24-MAR-15 07.08.24.000000000 UTC
Zは固定されているため、取得する値は常にUTCを表すと想定しています。変換する必要のある値で実際に異なるタイムゾーンを取得する場合は、それらを抽出して適用する必要があります。これは実行可能ですが困難であり、実際にそのような状況がない限り、入力する価値はありません。