MySQL - TRUNCATE() 函数
MySQL 提供了一组函数来执行各种数值函数。MySQL 的 TRUNCATE() 函数用于将给定数字限制为所需的小数位数。
此函数保留小数点后指定位数,并删除剩余部分。
语法
以下是此函数的语法 -
TRUNCATE(x, D);
参数
此函数接受两个参数,分别是 -
X - 需要限制小数位数的十进制数。
D - 小数点后应保留数字。
返回值
此函数将截断的值返回为数值或十进制值。
示例
以下是 TRUNCATE() 函数的示例。在这里,我们将小数点后的数字限制为 3 位。
SELECT TRUNCATE(225.33654, 3) As Result;
输出
上述查询的输出如下所示 -
Result |
---|
225.336 |
示例
我们可以将参数作为字符串值传递给此函数 -
SELECT TRUNCATE('5587.2645165421', '5') As Result;
输出
这将产生以下结果 -
Result |
---|
5587.26451 |
示例
如果我们选择的数字为 0,则结果始终为 0 -
SELECT TRUNCATE(0, 1) As Result;
输出
这将产生以下结果 -
Result |
---|
0 |
示例
如果参数 D 的值(为数字选择的值)为 0,则小数点后的所有数字都将被删除 -
SELECT TRUNCATE(6546841.489484, 0) As Result;
输出
执行给定查询后,输出显示如下 -
Result |
---|
6546841 |
示例
如果我们为第二个参数(D)传递一个负值,则给定数字的所有小数位都会被删除,此外,给定数字中指定位数(小数点左起)将被修改为零。
SELECT TRUNCATE(2545455.33546, -3) As Result;
输出
执行给定查询后,输出显示如下 -
Result |
---|
2545000 |
示例
在下面的示例中,我们使用 CREATE 语句创建一个名为 CUSTOMERS 的表,如下所示 -
CREATE TABLE CUSTOMERS ( ID INT AUTO_INCREMENT, NAME VARCHAR(20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
以下查询将 7 条记录添加到上面创建的表中 -
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ), (2, 'Khilan', 25, 'Delhi', 1500.00 ), (3, 'Kaushik', 23, 'Kota', 2000.00 ), (4, 'Chaitali', 25, 'Mumbai', 6500.00 ), (5, 'Hardik', 27, 'Bhopal', 8500.00 ), (6, 'Komal', 22, 'Hyderabad', 4500.00 ), (7, 'Muffy', 24, 'Indore', 10000.00 );
要验证记录是否已插入,请执行以下查询 -
Select * From CUSTOMERS;
以下是 CUSTOMERS 表 -
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
现在,我们使用 MySQL TRUNCATE() 函数将 SALARY 列的小数部分四舍五入为零位 -
SELECT *, TRUNCATE(SALARY, 0) As Result FROM CUSTOMERS;
执行给定查询后,输出结果如下 -
ID | NAME | AGE | ADDRESS | SALARY | Result |
---|---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 | 2000 |
2 | Khilan | 25 | Delhi | 1500.00 | 1500 |
3 | Kaushik | 23 | Kota | 2000.00 | 2000 |
4 | Chaitali | 25 | Mumbai | 6500.00 | 6500 |
5 | Hardik | 27 | Bhopal | 8500.00 | 8500 |
6 | Komal | 22 | Hyderabad | 4500.00 | 4500 |
7 | Muffy | 24 | Indore | 10000.00 | 10000 |