😊

【Silver DBA】タイムゾーン

2024/03/15に公開

タイムゾーン

国や地域ごとの日時の基準(標準時)を使用する国や地域のこと。
日本は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