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文の場合を除く。