CURRENT TIMESTAMP 特殊レジスター

CURRENT TIMESTAMP 特殊レジスターは、SQL ステートメントが現行サーバーで実行されるときの時刻機構の読み取り時点に基づいたタイム・スタンプを指定します。

この特別なレジスタが1つのSQLステートメント内で複数回使用された場合、または1つのステートメント内でCURRENT DATEまたはCURRENT TIMEと共に使用された場合、すべての値は単一のクロック読み取りに基づきます。1

ユーザー定義関数またはストアドプロシージャにおけるCURRENT TIMESTAMPの値は、 表1のルールに従って継承されます。

CURRENT_TIMESTAMP を指定することは、CURRENT TIMESTAMP を指定することと等価です。

指定した精度のタイムスタンプが必要な場合は、特別なレジスタをCURRENT TIMESTAMP (整数 )として参照できます。ここで、 整数は 0~12の範囲です。 デフォルトの精度 (precision) は 6 です。 SYSDATE を CURRENT TIMESTAMP(0) の同義語として指定することもできます。

タイム・ゾーン付きのタイム・スタンプが必要な場合は、CURRENT TIMESTAMP (integer) WITH TIME ZONE または CURRENT TIMESTAMP WITH TIME ZONE を使用して特殊レジスターを参照できます。 SYSTIMESTAMP は、CURRENT TIMESTAMP(12) WITH TIME ZONE の代替として指定できます。 タイム・ゾーンは、CURRENT TIME ZONE 特殊レジスターから判別されます。

注意 : CURRENT TIMESTAMP 特殊レジスタがタイムゾーン付きタイムスタンプのコンテキストで参照される場合(例えば、タイムゾーン付きタイムスタンプ列と比較される場合)、CURRENT TIMESTAMP 特殊レジスタの暗黙のタイムゾーンは、暗黙のタイムゾーン・システム・パラメータに基づいて決定されます。このパラメータは、CURRENT TIME ZONE 特殊レジスタとは異なる値である可能性があります。 この場合のタイム・ゾーンの誤解釈を防止するため、CURRENT TIMESTAMP WITH TIME ZONE を使用してください。

例 1
先週撮影された全画像コピーに関する情報を表示します。
  SELECT * FROM SYSIBM.SYSCOPY
    WHERE TIMESTAMP > CURRENT TIMESTAMP - 7 DAYS;
例 2
IN_TRAYテーブルに行を挿入します。 RECEIVED 列の値は、その行の挿入時点を示すタイム・スタンプでなければなりません。 その他の 3 つの列の値は、ホスト変数 SRC (CHAR(8))、SUB (CHAR(64))、および TXT (VARCHAR(200)) から取得されます。
INSERT INTO IN_TRAY 
	VALUES (CURRENT TIMESTAMP, :SRC, :SUB, :TXT)
例 3
CURRENT TIMESTAMP 特殊レジスタの値を8桁の精度で取得し、タイムゾーンを含める
SELECT CURRENT TIMESTAMP(8) WITH TIME ZONE 
	FROM SYSIBM.SYSDUMMY1;
1 非原子の複数行INSERTまたはMERGE文の場合を除く。