TRUNC_TIMESTAMP スカラー関数

TRUNC_TIMESTAMP スカラー関数は、引数 (expression) の TIMESTAMP を、別の引数 (format-string) で指定された単位に切り捨てて戻します。

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

スキーマは SYSIBM です。

format-string の指定がない場合は、format-string'DD' が指定されたものとして、expression は最も近い日に切り捨てられます。

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 の値が使用されます。

関数の結果は expression と同じ精度の TIMESTAMP になります。結果は NULL 値になることがあります。 いずれかの引数が NULL 値である場合、結果は NULL 値になります。

関数の結果は以下のタイム・スタンプ精度の TIMESTAMP になります。
  • 式のデータ・タイプが TIMESTAMP(p) の場合は p
  • 式のデータ・タイプが DATE の場合は 0。
  • それ以外の場合は 6
結果は NULL 値になることがあります。 いずれかの引数が NULL 値である場合、結果は NULL 値になります。

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

ホスト変数 TRNK_TMSTMP を、現在の年に最も近い年に丸めた値に設定します。

     SET :TRNK_TMSTMP = TRUNC_TIMESTAMP('2000-03-14-17.30.00', 'YEAR'); 
ホスト変数 TRNK_TMSTMP に、値 2000-01-01-00.00.00.000000 が設定されます。