SQL 関数一覧 (O‐S) > SESSIONTIMEZONE、DBTIMEZONE

セッションのタイムゾーン、データベースサーバーのタイムゾーン情報

syntax

SESSIONTIMEZONE
DBTIMEZONE
return [ varchar2 ]

parameter

なし

return

  • タイムゾーンのオフセット、または、タイムゾーン名

avail

  • SQL および PL/SQL の両方で使用可能。

SESSIONTIMEZONE 関数の内容

接続中のセッションにおける タイムゾーンを 「オフセット・タイムゾーン」 または 「タイムゾーン名」で戻す。
オフセットの書式は TZH:TZMhours:minutes)で記される。

「オフセット・タイムゾーン」 が戻されるか「タイムゾーン名」が戻されるかは ORA_SDTZ 環境変数 または SESSIONTIMEZONE 初期化パラメータにオフセットかタイムゾーン名を設定したかによる。

DBTIMEZONE 関数の内容

データベースのタイムゾーンを「オフセット・タイムゾーン」 または 「タイムゾーン名」で戻す。

「オフセット・タイムゾーン」 が戻されるか「タイムゾーン名」かは CREATE DATABASE 時における設定、または、ALTER DATABASE による変更可能な TIME_ZONE 初期化パラメータによる。
DBTIMEZONE の設定値は「日本環境」においても「+00:00」である。これは良好なパフォーマンスを出すための推奨値であり、問題ない。

初期化パラメータ TIME_ZONE はデータベースのスキーマのテーブル定義の状況によっては変更できない。(※)

(※) ALTER DATABASE SET TIME_ZONE できないケース(これ以外のケースは不明)

SQL> ALTER DATABASE SET TIME_ZONE='09:00';
ALTER DATABASE SET TIME_ZONE='09:00'
*
行1でエラーが発生しました。:
ORA-30079: データベースにTIMESTAMP WITH LOCAL TIME ZONE列がある場合は、-
 データベースのタイムゾーンを変更できません

DBTIMEZONE 使用例

SQL> select DBTIMEZONE from dual;
 
DBTIMEZONE
------------
+00:00

SESSIONTIMEZONE 使用例

SQL> select SESSIONTIMEZONE from dual;
 
SESSIONTIMEZONE
--------------------
+09:00

長いタイムゾーン名で設定

SQL> alter session set time_zone = 'Asia/Tokyo';
SQL> select SESSIONTIMEZONE,
  2         to_char(current_timestamp, 'TZR') tzr,
  3         to_char(current_timestamp, 'TZD') tzd,
  4         to_char(current_timestamp, 'TZH') tzh
  5    from dual;
 
SESSIONTIMEZONE      TZR                  TZD                  TZH
-------------------- -------------------- -------------------- --------------------
Asia/Tokyo           ASIA/TOKYO           JST                  +09

標準時に設定

SQL> select SESSIONTIMEZONE,
  2         to_char(current_timestamp, 'TZR') tzr,
  3         to_char(current_timestamp, 'TZD') tzd,
  4         to_char(current_timestamp, 'TZH') tzh
  5    from dual;
 
SESSIONTIMEZONE      TZR                  TZD                  TZH
-------------------- -------------------- -------------------- --------------------
UTC                  UTC                  GMT                  +00

標準時を求める SYS_EXTRACT_UTC

豆知識 UTC と GMT の違い

広く知られたグリニッジ天文台の GMT は、実はかなり前(1928年)より世界の標準時ではなくなっている。

現在の世界標準時は 協定世界時 UTC (Coordinated Universal Time)で セシウム原子時計 による時間をもとに GMT との間で不定期に補正された時刻である。(⇒うるう秒)

GMT は天体観測によって得られる時間である。協定世界時と世界時 ⇒ 世界時 (Wikipedia.org)



SQL 関数 - SESSIONTIMEZONE,DBTIMEZONE 関連

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ オラクルサポートセンター