TRUNCATE または TRUNC

TRUNCATE 関数は、expression–1 を、小数点の右側または左側の特定の桁で切り捨てた値を返します。

構文図を読む構文図をスキップする
>>-+-TRUNCATE-+--(--expression-1--,--expression-2--)-----------><
   '-TRUNC----'                                        

expression–1
任意の組み込み数値、文字ストリング、 またはグラフィック・ストリングのデータ・タイプの値を戻す式。 ストリング引数は、関数を評価する前に倍精度の浮動小数点に変換されます。 ストリングを倍精度の浮動小数点に変換する方法については、DOUBLE_PRECISION または DOUBLEを参照してください。

expression-1 が 10 進浮動小数点データ・タイプの場合、DECFLOAT ROUNDING MODE は使用されません。TRUNCATE の切り下げ動作は、ROUND_DOWN の値に対応します。別の丸め動作が必要な場合は、QUANTIZE 関数を使用します。

expression–2
組み込み短精度整数、長精度整数、または 64 ビット整数データ・タイプの値を戻す式。 整数の絶対値は、expression–2 が負でなければ、結果の小数点より右の桁数を指定し、 expression–2 が負であれば、小数点より左の桁数を指定します。

expression–2 が負でない場合、expression–1 は小数点の右側の expression–2 桁で切り捨てられます。

expression–2 が負の場合、 expression–1 は、小数点の左側の expression–2 の絶対値 +1 桁 で切り捨てられます。

expression–2 の絶対値が小数点より左の桁数より大きい場合、結果は 0 になります。 例えば、TRUNCATE (748.58,-4) = 0 です。

結果のデータ・タイプおよび長さ属性は、最初の引数のデータ・タイプおよび長さ属性と同じです。

どちらかの引数が NULL になる可能性がある場合は、結果も NULL になる可能性があります。 引数のどちらかが NULL である場合は、結果は NULL 値になります。

  • 最も給与の高い従業員の平均月収を計算します。その結果を小数点の右、2 桁目までで切り捨てます。
      SELECT TRUNCATE(MAX(SALARY/12, 2))
        FROM EMPLOYEE
    サンプルの従業員表内で給与の最も高い従業員の年収は $52750.00 なので、この例では 4395.83 の値が戻されます。
  • 数値 873.726 を、小数点から 2、1、0、-1、-2、-3 までで切り捨てます。
      SELECT TRUNCATE(873.726,  2),
             TRUNCATE(873.726,  1),
             TRUNCATE(873.726,  0),
             TRUNCATE(873.726, -1),
             TRUNCATE(873.726, -2),
             TRUNCATE(873.726, -3)
        FROM SYSIBM.SYSDUMMY1

    それぞれ以下の値が戻されます。

    0873.720   0873.700  0873.000  0870.000  0800.000  0000.000
  • 正負両方の数値を計算します。
      SELECT TRUNCATE( 3.5, 0),
             TRUNCATE( 3.1, 0),
             TRUNCATE(-3.1, 0),
             TRUNCATE(-3.5, 0)
        FROM SYSIBM.SYSDUMMY1
    この例ではそれぞれ、
    3.0   3.0  -3.0  -3.0
    が戻されます。