JavaScriptが無効になっています。
この状態では一部の情報が表示されず、すべての機能を利用することができません。
タイムゾーン付きの日付に変換、タイムゾーンの変更、オフセットの取得
FROM_TZ ( timestamp , time_zone )
NEW_TIME ( date , time_zone_tzd_from , time_zone_tzd_to )
return [ timestamp with timezone | date ]
TZ_OFFSET ( time_zone )
return [ timze_zone_offset ]
timestamp タイムスタンプ式 TIMESTAMP 型 date 日付式 DATE 型 time_zone タイムゾーン・オフセット、または、タイムゾーン名 time_zone_tzd_[from,to] 一部に限定された(夏時間を含む)タイムゾーン略名
日付式にタイムゾーン付の情報を加工して加えタイムゾーン付きタイムスタンプにして戻す。
タイムゾーン・オフセットを戻す。
タイムゾーン略名
NEW_TIME 関数ではアメリカ・カナダおよびグリニッジ標準時しか対象としていない。「まだ?」国際化されていない関数のため日本のタイムゾーンへの変換には使用できない。国際的なタイムゾーンの変換ではなくサマータイム処理のために用意された関数かもしれない。
FROM_TZ 関数の内容
タイムスタンプ式 timestamp に タイムゾーン timezone を付加して タイムゾーン付きのタイムスタンプに変換する。
NEW_TIME 関数の内容
タイムゾーン time_zone_tzd_from における 日時式 date を タイムゾーン time_zone_tzd_to における日時に変換する。※ 戻り値のデータ型は DATE 型。しかし、日本のタイムゾーンでは使えない。FROM_TZ と AT TIME ZONE 式 を使用して代替式は作成できる。⇒ FROM_TZ 使用例 参照
TZ_OFFSET 関数の内容
タイムゾーン名 time_zone 、または、DBTIMEZONE、SESSIONTIMEZONE におけるタイムゾーン・オフセット値を戻す。
TZ_OFFSET 使用例
日本のタイムゾーンのオフセット
SQL> select TZ_OFFSET ('Asia/Tokyo' ) tokyo, TZ_OFFSET ('japan' ) jpn,
2 TZ_OFFSET (sessiontimezone ) stz1, sessiontimezone stz2 from dual ;
TOKYO JPN STZ1 STZ2
--------------- --------------- --------------- ---------------
+09:00 +09:00 +09:00 +09:00
FROM_TZ 使用例
NEW_TIME の代替式:dt 列を tz_from 列のタイムゾーンから tz_to 列のタイムゾーンに変換する。
SQL> select dt, tz_from, tz_to,
2 FROM_TZ (cast (dt AS timestamp), tz_offset (tz_from))
3 at time zone tz_offset (tz_to) another_time
4 from from_tz_sample;
DT TZ_FROM TZ_TO ANOTHER_TIME
-------------------- --------------- ----- -----------------------------------
2000-01-01 00:00:00 Asia/Tokyo JAPAN 2000-01-01 00:00:00.000000 +09:00
1999-12-31 12:00:00 Canada/Atlantic JAPAN 2000-01-01 00:00:00.000000 +09:00
1999-12-31 05:00:00 US/Hawaii JAPAN 2000-01-01 00:00:00.000000 +09:00
上の FROM_TZ 〜 式は NEW_TIME 関数を一般化した式なのでセッションタイムゾーンに変換したいだけなら、少し簡単に書ける。
SQL> select dt, tz_from,
2 FROM_TZ (cast (dt AS timestamp), tz_offset (tz_from))
3 AT LOCAL another_time
4 from from_tz_sample;
DT TZ_FROM ANOTHER_TIME
-------------------- --------------- -----------------------------------
2000-01-01 00:00:00 Asia/Tokyo 2000-01-01 00:00:00.000000 +09:00
1999-12-31 12:00:00 Canada/Atlantic 2000-01-01 00:00:00.000000 +09:00
1999-12-31 05:00:00 US/Hawaii 2000-01-01 00:00:00.000000 +09:00
タイムゾーンに関連する内容
SQL 関数 - FROM_TZ,NEW_TIME,TZ_OFFSET 関連