TRUNC_TIMESTAMP スカラー関数
TRUNC_TIMESTAMP スカラー関数は、引数 (expression) の TIMESTAMP を、別の引数 (format-string) で指定された単位に切り捨てて戻します。
スキーマは 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
注
- 決定論: TRUNC_TIMESTAMP は決定論的な関数です。ただし、以下の関数の呼び出しは、特殊レジスターの CURRENT LOCALE LC_TIME の値によって決まります。
- locale-name が明示的に指定されず、以下のいずれかが真の場合、日付またはタイム・スタンプ値の切り捨て。
- format-string が定数でない
- format-string が定数で、ロケールに依存するフォーマット・エレメントが含まれる
- locale-name が明示的に指定されず、以下のいずれかが真の場合、日付またはタイム・スタンプ値の切り捨て。
例
ホスト変数 TRNK_TMSTMP を、現在の年に最も近い年に丸めた値に設定します。
SET :TRNK_TMSTMP = TRUNC_TIMESTAMP('2000-03-14-17.30.00', 'YEAR'); ホスト変数 TRNK_TMSTMP に、値 2000-01-01-00.00.00.000000 が設定されます。