😊
【Silver DBA】タイムゾーン
タイムゾーン
国や地域ごとの日時の基準(標準時)を使用する国や地域のこと。
日本はAsia/Tokyo。
タイムゾーンは タイムゾーンリージョン名か、タイムゾーンオフセットで指定。
タイムゾーンリージョン名
Asia/Tokyoなどの国や地域名。
タイムゾーンオフセット
+9:00など、UTCとの差。
Oracleの日時データ型
| データ型 | 内容 |
|---|---|
| DATE | 日付と時刻 |
| TIMESTAMP | 日付と時刻(小数秒を含む) |
| TIMESTAMP WITH TIME ZONE | 日付と時刻(小数秒を含む)、タイムゾーン情報 |
| TIMESTAMP WITH LOCAL TIME ZONE | 正規化された日付と時刻(小数秒を含む) |
TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH TIME ZONE型は NLS_TIMESTAMP_TZ_FORMAT初期化パラメータに設定した書式モデルで表示。
TIMESTAMP WITH LOCAL TIME ZONE
指定された日時をデータベースのタイムゾーンに正規化してデータベースに保存。
データベースのタイムゾーンはUTCに設定することが推奨されているので、
指定された日時はUTCに変換されてデータベースに変換されることが多い。
現在日時を戻すファンクション
| ファンクション | 基準 | 戻すデータ型 |
|---|---|---|
| CURRENT_DATE | Oracleセッションのタイムゾーン | DATE |
| CURRET_TIMESTAMP | Oracleセッションのタイムゾーン | TIMESTAMP WITH TIME ZONE |
| LOCALTIMESTAMP | Oracleセッションのタイムゾーン | TIMESTAMP |
| SYSDATE | データベースサーバーのOSのタイムゾーン | DATE |
| SYSTIMESTAMP | データベースサーバーのOSのタイムゾーン | TIMESTAMP WITH TIME ZONE |
Oracleセッションのタイムゾーン
以下のコマンドで取得できる。
SELECT sessiontimezone FROM dual;
Discussion