TRUNCATE
概要
xを小数点以下d桁で数値切り捨てを実行する
構文
TRUNCATE(<x>, <d>)
パラメータ
| Parameter | デスクリプション |
|---|---|
<x> | 数値的に切り捨てが必要な値 |
<d> | 保持する小数点以下の桁数 |
Return Value
xに対して小数点以下d桁まで数値的切り捨てを実行します。切り捨てルール:
dがリテラルの場合:
- d > 0の場合:xの小数点以下d桁を保持します。
- d = 0の場合:xの小数部分を削除し、整数部分のみを保持します。
- d < 0の場合:xの小数部分を削除し、整数部分をdで指定された桁数に置き換え、数字0を使用します。
dがカラムで、第一引数がDecimal型の場合、結果のDecimalは入力のDecimalと同じ小数点以下桁数を持ちます。
Example
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 |
+---------------------------------------+--------+----------------------------------------------------------------------+