ではありませんいくつかのステップ。出発点は、Oracleが認識されないTとZの文字リテラル、とto_timestamp()
を使用することです:
select to_timestamp('2016-05-31T23:00:00.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')
from dual;
TO_TIMESTAMP('2016-05-31T23:00:00.000Z','YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')
-------------------------------------------------------------------------
2016-05-31 23:00:00.000
その後、あなたはタイムゾーンレス値が実際にfrom_tz()
とUTCであることを述べることができる:
select from_tz(
to_timestamp('2016-05-31T23:00:00.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"'),
'UTC')
from dual;
FROM_TZ(TO_TIMESTAMP('2016-05-31T23:00:00.000Z','YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"'
--------------------------------------------------------------------------------
2016-05-31 23:00:00.000 UTC
次に、あなたがあなた自身のタイムゾーンに変換することができます:
select from_tz(
to_timestamp('2016-05-31T23:00:00.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"'),
'UTC') at time zone 'Europe/London'
from dual;
FROM_TZ(TO_TIMESTAMP('2016-05-31T23:00:00.000Z','YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"'
--------------------------------------------------------------------------------
2016-06-01 00:00:00.000 EUROPE/LONDON
日付データ型としてそれをバックしたい場合は、それを唱えることができます。
select cast(from_tz(
to_timestamp('2016-05-31T23:00:00.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"'),
'UTC') at time zone 'Europe/London' as date)
from dual;
CAST(FROM_TZ(TO_TIMESTAMP('2016-05-31T23:00:00.000Z','YYYY-MM-DD"T"HH24:MI:SS.FF
--------------------------------------------------------------------------------
2016-06-01 00:00:00
時間部分が必要ですか? –
はい、私は時間の部分が必要です。 – dwjv
@RickRunowski UTC( 'Z')から時間を調整する必要がある場合は、この質問タグは 'C# 'です。この質問タグは' Oracle' –