異なるタイムゾーン日付をセッションタイムゾーンの日付に変換
Oracle 9i からの 日時式。 日時リテラル や日付式に続けて書くことで日付を修飾、時間帯を変換する。
datetime AT LOCAL
datetime AT TIME ZONE timezone_expr
datetime | 日時式 |
timezone_expr | タイムゾーンオフセット、または、タイムゾーン名 |
- 日付、タイムスタンプを指定したタイムゾーン・時間帯の日時にして戻す。
AT LOCAL 式 の内容
日時 datetime を ローカルタイムゾーンの時間帯に変換する。
AT TIMESTAMP 式 の内容
日時式 datetime を タイムゾーン timezone_expr で指定したタイムゾーン(時間帯)に変換する。
AT LOCAL 式 使用例
日本時間、標準時、ハワイ島、太平洋標準時で格納されているタイムゾーン付きタイムスタンプをローカルタイムゾーンのタイムスタンプに変換
SQL> alter session set nls_timestamp_tz_format = 'YYYY-MM-DD HH24:MI:SSXFF TZR';
SQL> select tzr, ts_tz, ts_tz AT LOCAL as at_local_time from at_timezone_sample;
TZR TS_TZ AT_LOCAL_TIME
--------------- ---------------------------------- ----------------------------------
Asia/Tokyo 2007-01-01 09:00:00.000000 +09:00 2007-01-01 09:00:00.000000 +09:00
UTC 2007-01-01 09:00:00.000000 +00:00 2007-01-01 18:00:00.000000 +09:00
US/Hawaii 2007-01-01 09:00:00.000000 -10:00 2007-01-02 04:00:00.000000 +09:00
US/Pacific 2007-01-01 09:00:00.000000 -07:00 2007-01-02 01:00:00.000000 +09:00
AT TIMESTAMP 式 使用例
同、日本時間、標準時、ハワイ島、太平洋標準時で格納されている日付をハワイ島におけるセッションタイムゾーンに変換
SQL> alter session set time_zone='US/Hawaii'; -- Welcome to Hawaii
SQL> select tzr, ts_tz, ts_tz AT TIME ZONE SESSIONTIMEZONE at_session_tz
2 from at_timezone_sample;
TZR TS_TZ AT_SESSION_TZ
--------------- ---------------------------------- --------------------------------------
Asia/Tokyo 2007-01-01 09:00:00.000000 +09:00 2006-12-31 14:00:00.000000 US/HAWAII
UTC 2007-01-01 09:00:00.000000 +00:00 2006-12-31 23:00:00.000000 US/HAWAII
US/Hawaii 2007-01-01 09:00:00.000000 -10:00 2007-01-01 09:00:00.000000 US/HAWAII
US/Pacific 2007-01-01 09:00:00.000000 -07:00 2007-01-01 06:00:00.000000 US/HAWAII
タイムゾーン・オフセット(UTC 00:00)でタイムゾーンを変換
SQL> select tzr, ts_tz, ts_tz at time zone '00:00' at_offset_tz
2 from at_timezone_sample;
TZR TS_TZ AT_OFFSET_TZ
--------------- ---------------------------------- --------------------------------------
Asia/Tokyo 2007-01-01 09:00:00.000000 +09:00 2007-01-01 00:00:00.000000 +00:00
UTC 2007-01-01 09:00:00.000000 +00:00 2007-01-01 09:00:00.000000 +00:00
US/Hawaii 2007-01-01 09:00:00.000000 -10:00 2007-01-01 19:00:00.000000 +00:00
US/Pacific 2007-01-01 09:00:00.000000 -07:00 2007-01-01 16:00:00.000000 +00:00
日付に関する事項
SQL 関数 - AT TIME ZONE 関連