CURRENT TIMEZONE 特殊レジスター
CURRENT TIMEZONE (または CURRENT_TIMEZONE) 特殊レジスターには、 UTC (協定世界時 (Coordinated Universal Time)。 旧 GMT。) とアプリケーション・サーバーのローカル時との差が入れられます。
この差は、時刻期間 (最初の 2 桁が時間数、次の 2 桁が分数、 最後の 2 桁が秒数である 10 進数) によって表現されます。 時間数の数値は -24 と 24 を除く -24 と 24 の間です。 ローカル時刻から CURRENT TIMEZONE を減算すると、 ローカル時刻が UTC に変換されます。 時刻は、SQL ステートメントが実行されるときに、 オペレーティング・システムの時刻から計算されます。 (CURRENT TIMEZONE の値は、C のランタイム関数によって決まります。)
CURRENT TIMEZONE 特殊レジスターは、時刻やタイム・スタンプの算術演算など、 DECIMAL(6,0) のデータ・タイプの式が使用されるところならどこででも使用できます。
ルーチン内部の SQL ステートメントで使用する場合、呼び出しステートメントからの CURRENT TIMEZONE の継承はありません。
例:
以下の例は、RECEIVED 列の UTC タイム・スタンプを使って、
IN_TRAY 表にレコードを挿入します。
INSERT INTO IN_TRAY VALUES (
CURRENT TIMESTAMP - CURRENT TIMEZONE,
:source,
:subject,
:notetext )