4
OracleのDB表に、TIMESTAMP(6) WITH TIME ZONE
の列があります。異なるタイムゾーンのデータ、UTCのデータ、その他のタイムゾーンオフセットのデータ行があります。Oracle TIMESTAMPとTIMEZONEの照会
結果が常にUTCとして戻ってくるように、Oracleテーブルをクエリできる方法はありますか?適切な時間シフトが行われていますか?クエリ自体に何かできるのか、それとも何らかの形でセッションを変更することができますか?私はUtcにセッションのタイムゾーンを変更しようとしましたが、これはCURRENT_TIMESTAMPの値に影響するようです。例えば
ALTER SESSION SET TIME_ZONE = 'Utc'
、値は以下のように格納されていた場合:
21-JAN-10 03.28.38.635000000 PM -05:00
クエリは、あなたがする必要があります
21-JAN-10 08.28.38.635000000 PM Utc
例のテーブル定義
CREATE TABLE "MyDb"."Books"
(
"GUID" RAW(32) DEFAULT SYS_GUID(),
"DATE_CREATED" TIMESTAMP (6) WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
);
私は「TIME ZONE 『UTC』 AT」のロジックは自動的に行われますので、私はセッションを変更することができる方法はありません推測していますか? –
@StealthRabbi - 列が 'TIMESTAMP WITH LOCAL TIME ZONE'だった場合、その値は暗黙的にUTCに設定できるセッションのタイムゾーンに変換されます。 'TIMESTAMP WITH TIME ZONE'は、' AT TIME ZONE'構文のようなもので変換しない限り、挿入されたタイムゾーンに表示されます。 –