TIMESTAMP スカラー関数
TIMESTAMP 関数は、1 つの値または 2 つの値からタイム・スタンプを戻します。
スキーマは SYSIBM です。
Unicode データベースだけが、 日付、時刻、またはタイム・スタンプの GRAPHIC ストリング表現である引数をサポートします。 Unicode データベースでは、指定した引数が GRAPHIC ストリングであると、 まず文字ストリングに変換されてから、関数が実行されます。
- expression1 および expression2
引数に関する規則は、expression2 が指定されているかどうか、および expression2 のデータ・タイプによって異なります。
- 引数が 1 つのみ指定されている場合は、組み込みデータ・タイプ (DATE か TIMESTAMP、または CLOB ではない文字ストリング) のいずれかの値を戻す式でなければなりません。 expression1 が文字ストリングの場合は、以下のいずれかでなければなりません。
- 日付またはタイム・スタンプの有効な文字ストリング表記。 日付またはタイム・スタンプの値のストリング表記の有効なフォーマットについては、『日付/時刻の値』の『
日付/時刻の値のストリング表記
』を参照してください。 - GENERATE_UNIQUE 関数からの結果と想定される、実際の長さが 13 の文字ストリング。
- 長さ 14 のストリング。これは、有効な日付と時刻を yyyyxxddhhmmss という形式で表した数字のストリングです (ここで、yyyy は年、xx は月、dd は日、hh は時、mm は分、そして ss は秒を表します)
- 日付またはタイム・スタンプの有効な文字ストリング表記。 日付またはタイム・スタンプの値のストリング表記の有効なフォーマットについては、『日付/時刻の値』の『
- expression1 および expression2 が指定されている場合は、次のようになります。
- expression2 のデータ・タイプが整数でない場合:
- expression1 は DATE または日付の有効なストリング表現でなければならず、expression2 は TIME または時刻の有効なストリング表現でなければなりません。
- expression2 のデータ・タイプが整数の場合:
- expression1 は DATE、TIMESTAMP、またはタイム・スタンプや日付の有効なストリング表記でなければなりません。 expression2 は、タイム・スタンプ精度を表す 0 から 12 までの範囲の整数定数でなければなりません。
- expression2 のデータ・タイプが整数でない場合:
- 引数が 1 つのみ指定されている場合は、組み込みデータ・タイプ (DATE か TIMESTAMP、または CLOB ではない文字ストリング) のいずれかの値を戻す式でなければなりません。 expression1 が文字ストリングの場合は、以下のいずれかでなければなりません。
関数の結果は TIMESTAMP です。
タイム・スタンプ精度およびその他の規則は、2 番目の引数を指定するかどうかによって異なります。
- 両方の引数が指定され、2 番目の引数が整数でない場合
- 結果は、最初の引数によって日付が指定され、 2 番目の引数によって時刻が指定された TIMESTAMP(6) です。 タイム・スタンプの秒未満の部分はゼロです。
- 両方の引数が指定され、2 番目の引数が整数の場合
- 結果は、2 番目の引数で指定された精度の TIMESTAMP です。
- 引数が 1 つだけ指定され、それが TIMESTAMP(p) の場合
- 結果は、指定した TIMESTAMP(p) になります。
- 引数が 1 つだけ指定され、それが DATE の場合
- 結果は、その日付で、TIMESTAMP(0) にキャストされた真夜中の想定時刻となります。
- 引数が 1 つだけ指定され、それがストリングの場合
- 結果は、そのストリングで表される TIMESTAMP(6) の値です。欠落している時刻情報があれば、上記の説明にある方法で拡張されます。 引数が長さ 14 のストリングの場合、TIMESTAMP の秒未満の部分はゼロになります。
引数が日付情報のみを含む場合、結果の値の時刻情報はすべてゼロになります。 引数のいずれかが NULL 値になる可能性がある場合、 結果も NULL 値になる可能性があります。 引数のいずれかが NULL 値の場合、その結果は NULL 値です。
例
- 例 1: 列 START_DATE (データ・タイプは DATE) には 1988-12-25 に相当する値が入っていて、
列 START_TIME (データ・タイプは TIME) には 17.12.30 に相当する値が入っているとします。
TIMESTAMP(START_DATE, START_TIME)
この例は、値 '1988-12-25-17.12.30.000000' を戻します。
- 例 2: 7 桁の秒未満タイム・スタンプ・ストリングを、TIMESTAMP(9) の値に変換します。
この例では '2007-09-24-15.53.37.216247400' の値を戻します。TIMESTAMP('2007-09-24-15.53.37.2162474',9)