MySQL TRUNCATE 函数是数学函数之一,可用于将指定的表达式截断到用户指定的十进制位置或长度。在本文中,我们将向您展示如何通过命令提示符和 Workbench 结合示例来获取截断值。
MySQL TRUNCATE 函数语法
TRUNCATE 函数的基本语法是
SELECT TRUNCATE(Numeric_Expression, Decimal_Points) FROM Source
- Numeric_Expression:可以是数字或有效的数值表达式。
- Decimal_Points:这是 Expression 删除数字的精度。可以是数字或有效的数值表达式。
- 如果值为零,则会删除 Numeric_Expression 中的所有小数位。
- 如果它是正数,则函数会保留此参数指定的十进制值的数量。例如,如果值为 2,则函数只允许 2 位小数。其余数字将被删除。
- 如果它是负数,则 Expression 可以删除到小数点左侧。
为了演示此 TRUNCATE 数值函数,我们将使用下面显示的数据。

MySQL TRUNCATE 函数示例
此函数返回截断到指定小数位置的值。以下查询显示了使用正数和负数小数位置的多种使用方法。
-- on Negative
SELECT TRUNCATE(-20.21458, 2) AS `TruncatedValue`;
-- on Positive
SELECT TRUNCATE(125.5745789, 4) AS `TruncatedValue`;
-- on string data
SELECT TRUNCATE('105.59', 5) AS `TruncatedValue`;
-- on String text
SELECT TRUNCATE('MySQL', 3) AS `TruncatedValue`;
从下面的《数学方法》屏幕截图中,您可以看到我们将其用于不同的数字。在这里,我们使用 ALIAS 列为 MySQL 结果分配了一个新名称。

我尝试将负数作为 Truncate 函数的第二个参数。
SELECT TRUNCATE(-2152.21458, -2) AS `TruncatedValue`; SELECT TRUNCATE(45825.5745789, -3) AS `TruncatedValue`; SELECT TRUNCATE(986795.59, -1) AS `TruncatedValue`; SELECT TRUNCATE(145.94589, 0) AS `TruncatedValue`;

MySQL 数值函数还允许您查找列数据的截断值。在此示例中,我们将查找“Sales”、“Standard Cost”、“tax Amount”和“Service Grade”列中所有记录的删除值。
SELECT Product, Color,
StandardCost, TRUNCATE(StandardCost, 1) AS Cost,
Sales, TRUNCATE(Sales, 2) AS Sales,
TaxAmt, TRUNCATE(TaxAmt, 3) AS Tax,
ServiceGrade, TRUNCATE(ServiceGrade, 0) AS Grade
FROM `numeric functions`;

我们将编写与上一个示例中使用的相同查询。但是,这次我们将使用负数作为第二个参数。
SELECT Product, Color,
StandardCost, TRUNCATE(StandardCost, -1) AS Cost,
Sales, TRUNCATE(Sales, -2) AS Sales,
TaxAmt, TRUNCATE(TaxAmt, -1) AS Tax,
ServiceGrade
FROM `numeric functions`;
