メインコンテンツまでスキップ
バージョン: 4.x

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 |
+---------------------------------------+--------+----------------------------------------------------------------------+