ROUND_TIMESTAMP スカラー関数

ROUND_TIMESTAMP スカラー関数は、指定された引数 (expression) に基づく TIMESTAMP を、別の引数 (format-string) で指定された単位に丸めて戻します。

構文図を読む構文図をスキップするROUND_TIMESTAMP(expression ,'DD',format-stringlocale-name )

スキーマは SYSIBM です。

format-string を指定しない場合、expression は、format-string'DD' を指定した場合と同じように、直近の日に丸められます。

expression
組み込みデータ・タイプ (DATE または TIMESTAMP) のいずれかの値を戻す式。
format-string
実際の長さが 255 バイト以下の組み込み文字 ストリング・データ・タイプを返す式。format-string のフォーマット・エレメントは、expression を丸める方法を指定します。例えば、format-string が 'DD' である場合、expression で表されるタイム・スタンプは直近の日に丸められます。先行ブランクと末尾のブランクは、ストリングから除去されます。また、結果のサブストリングは、タイム・スタンプとして有効なフォーマット・エレメントである必要があります (SQLSTATE 22007)。デフォルトは 'DD' です。

format-string の許容値が、ROUND 関数の説明の中のフォーマット・エレメントの表にリストされています。

locale-name
フォーマットのモデル値として DAY、DY、または D を使用する際に、週の最初の曜日を定義するために使用するロケールを指定する文字定数。locale-name の値には大文字と小文字の区別がなく、有効なロケールでなければなりません (SQLSTATE 42815)。有効なロケールとその命名については、『SQL および XQuery のロケール名』を参照してください。locale-name が指定されないと、 特殊レジスター CURRENT LOCALE LC_TIME の値が使用されます。
関数の結果は以下のタイム・スタンプ精度の TIMESTAMP になります。
  • expression のデータ・タイプが TIMESTAMP(p) の場合は p
  • expression のデータ・タイプが DATE の場合は 0。
  • それ以外の場合は 6。
結果は NULL 値になることがあります。 いずれかの引数が NULL 値である場合、結果は NULL 値になります。

  • 決定論: ROUND_TIMESTAMP は決定論的な関数です。ただし、以下の関数の呼び出しは、特殊レジスターの CURRENT LOCALE LC_TIME の値によって決まります。
    • locale-name が明示的に指定されず、以下のいずれかが真の場合、日付またはタイム・スタンプ値の丸め。
      • format-string が定数でない
      • format-string が定数で、ロケールに依存するフォーマット・エレメントが含まれる
      特殊レジスターを使用できないところでは、特殊レジスターの値に依存する関数の呼び出しを使用することはできません (SQLSTATE 42621、428EC、または 429BX)。

直近年の値に丸められた入力タイム・スタンプでホスト変数 RND_TMSTMP を設定します。

     SET :RND_TMSTMP = ROUND_TIMESTAMP('2000-08-14-17.30.00', 'YEAR');
値セットは 2001-01-01-00.00.00.000000 です。