Top > SQL 入門 > AT LOCAL、AT TIME ZONE 式

異なるタイムゾーン日付をセッションタイムゾーンの日付に変換

Oracle 9i からの 日時式日時リテラル や日付式に続けて書くことで日付を修飾、時間帯を変換する。

syntax

datetime AT LOCAL Oracle 9i
datetime AT TIME ZONE timezone_expr

parameter

datetime日時式
timezone_exprタイムゾーンオフセット、または、タイムゾーン名

return

  • 日付、タイムスタンプを指定したタイムゾーン・時間帯の日時にして戻す。

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 関連

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)