メインコンテンツまでスキップ
に最終更新

TRUNCATE

説明​

x を小数点以下 d 桁で切り捨てます。

構文​

TRUNCATE(<x>, <d>)

パラメータ​

パラメータ説明
<x>切り捨てる数値
<d>残す小数点以下の桁数

戻り値​

x を小数点以下 d 桁で切り捨てた値を返します。切り捨て規則は次のとおりです。

d がリテラルの場合:

  • d > 0 の場合:x の小数点以下 d 桁を残します。
  • d = 0 の場合:x の小数部を取り除き、整数部のみを残します。
  • d < 0 の場合:x の小数部を取り除き、整数部の末尾から d で指定された桁数分を 0 に置き換えます。

d が列で、最初の引数が Decimal 型の場合、結果の Decimal 型は入力の Decimal 型と同じ小数桁数になります。

例​

d がリテラルの場合

select truncate(124.3867, 2),truncate(124.3867, 0),truncate(124.3867, -2);
+-----------------------+-----------------------+------------------------+
| truncate(124.3867, 2) | truncate(124.3867, 0) | truncate(124.3867, -2) |
+-----------------------+-----------------------+------------------------+
| 124.38 | 124 | 100 |
+-----------------------+-----------------------+------------------------+

d が列の場合

select cast("123.123456" as Decimal(9,6)), number, truncate(cast ("123.123456" as Decimal(9,6)), number) from numbers("number"="5");
+---------------------------------------+--------+----------------------------------------------------------------------+
| cast('123.123456' as DECIMALV3(9, 6)) | number | truncate(cast('123.123456' as DECIMALV3(9, 6)), cast(number as INT)) |
+---------------------------------------+--------+----------------------------------------------------------------------+
| 123.123456 | 0 | 123.000000 |
| 123.123456 | 1 | 123.100000 |
| 123.123456 | 2 | 123.120000 |
| 123.123456 | 3 | 123.123000 |
| 123.123456 | 4 | 123.123400 |
+---------------------------------------+--------+----------------------------------------------------------------------+