Последнее обновление
TRUNCATE
Описание
Усечение числа x до d знаков после запятой
Синтаксис
TRUNCATE(<x>, <d>)
Параметры
| Параметр | Описание |
|---|---|
<x> | Число, которое необходимо усечь |
<d> | Количество сохраняемых знаков после запятой |
Возвращаемое значение
Число x, усечённое до d знаков после запятой. Правила усечения:
Если d — литерал:
- При d > 0: сохраняются d знаков после запятой в числе x.
- При 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 |
+---------------------------------------+--------+----------------------------------------------------------------------+