%TIMESTAMP (タイム・スタンプへの変換)
%TIMESTAMP{(char-num-expression { : *ISO|*ISO0 : {fractional-seconds}})}
%TIMESTAMP{(date-timestamp-expression { : fractional-seconds})}
%TIMESTAMP{(*SYS { : fractional-seconds})}
%TIMESTAMP{(*UNIQUE)}
%TIMESTAMP を使用して現在のシステム・タイム・スタンプを戻す
パラメーターが指定されていないか、または最初のパラメーターとして *SYS または *UNIQUE が指定されている場合、%TIMESTAMP は現在のシステム・タイム・スタンプをマイクロ秒の精度で戻します。
最初のパラメーターが *SYS の場合、2 番目のパラメーターは任意指定であり、タイム・スタンプ内の秒の小数部の桁数が戻されます。 秒の小数部の桁数は 0 から 12 までの間にすることができます。 秒の小数部のデフォルトの桁数は 6 です。
最初のパラメーターが *UNIQUE の場合、%TIMESTAMP は現在のシステム・タイム・スタンプをマイクロ秒単位の精度で戻します。 タイム・スタンプの小数部の最初の 6 桁には、タイム・スタンプのマイクロ秒の部分が設定されます。 残りの 6 桁の小数秒に値に設定され、この値によって、結果として生成されるタイム・スタンプが固有になります。 ただし、その残りの 6 桁の小数秒によって、タイム・スタンプの精度が上がることはありません。
%TIMESTAMP を使用して式をタイム・スタンプに変換する
- 最初のパラメーターが文字式または数値式の場合、2 番目のパラメーターは文字データまたは数値データの形式になります。 入力データの形式にかかわらず、出力は *ISO 形式で戻されます。
文字入力の場合、*ISO (デフォルト) または *ISO0 のいずれかを指定できます。 詳しくは、 タイム・スタンプ・データ・タイプを参照してください。
最初のパラメーターが数値の場合は、2 番目のパラメーターを指定する必要はありません。 唯一許される値は *ISO (デフォルトの値) のみです。
3 番目のパラメーターは、任意指定であり、タイム・スタンプ内の秒の小数部の桁数 です。 秒の小数部の桁数は 0 から 12 までの間にすることができます。 秒の小数部のデフォルトの桁数は 6 です。
- 最初のパラメーターが日付またはタイム・スタンプ式である場合、2 番目のパラメーターは任意指定であり、戻されるタイム・スタンプ内の秒の小数部の桁数です。
最初のオペランドが日付の場合、システムはその日付を現在の形式 から *ISO 形式に変換し、時刻
00.00.00
とゼロの小数点以下の秒を加算 します。 秒の小数部の桁数は 0 から 12 までの間にすることができます。 秒の小数部のデフォルトの桁数は 6 です。
%TIMESTAMP の例
*..1....+....2....+....3....+....4....+....5....+....6....+....7...+....
string = '1960-09-29-12.34.56.000000';
timest = %timestamp(string);
// timest now contains z'1960-09-29-12.34.56.000000'
date = '2001-03-05';
timest = %timestamp(date);
// timest now contains z'2001-03-05-00.00.00.000000'
dsply (%timestamp(*SYS));
// It displays 2014-06-27-01.02.03.421345
dsply (%timestamp(*SYS : 1));
// It displays 2014-06-27-01.02.03.4
dsply (%timestamp(*SYS : 0));
// It displays 2014-06-27-01.02.03
dsply (%timestamp(*UNIQUE);
// It displays 2014-06-27-01.02.03.923481000244