MySQL - FORMAT() 函数
MySQL FORMAT() 函数用于格式化数值,使其具有指定的小数位数,并以逗号作为千位分隔符。它还会将给定的数字四舍五入到小数点后指定的位数。
此函数仅用于修改数字以进行更简单的数学计算。它只能在数据库中的数值数据上调用。
语法
以下是 MySQL Format() 函数的语法 -
FORMAT(X,D);
参数
此函数接受两个值作为参数 -
X - 一个数字(浮点数)。
D - 小数点后应保留的位数。
返回值
此函数以字符串形式返回格式化的数字,千位用逗号分隔,小数点后指定位数。
示例
在以下查询中,我们使用 MySQL FORMAT() 函数将给定的数字格式化为三位小数 -
SELECT FORMAT(85878.687555758, 3) As Result;
输出
上述查询的输出如下所示 -
Result |
---|
85,878.688 |
示例
以下查询将给定数字格式化为两位小数并返回结果 -
SELECT FORMAT(424812, 2) As Result;
输出
这将产生以下结果 -
Result |
---|
424,812.00 |
示例
我们也可以将字符串形式的值传递给此函数 -
SELECT FORMAT('454877.3387557', '3') As Result;
输出
输出显示如下 −
Result |
---|
454,877.339 |
示例
如果我们将 0 作为此函数的第二个参数传递,它将省略小数点后的所有数字并返回结果 −
SELECT FORMAT(54889578795.65785478, 0) As Result;
输出
这将产生以下结果 -
Result |
---|
54,889,578,796 |
示例
您还可以使用 FORMAT() 函数对表中列的值进行舍入。为此,我们首先使用以下查询创建一个名为 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 |
以下查询格式化 SALARY 列,不包含小数位 -
SELECT ID, NAME, ADDRESS, FORMAT(SALARY, 0) FROM CUSTOMERS;
上述查询的输出如下所示 -
ID | NAME | ADDRESS | SALARY |
---|---|---|---|
1 | Ramesh | Ahmedabad | 2,000 |
2 | Khilan | Delhi | 1,500 |
3 | Kaushik | Kota | 2,000 |
4 | Chaitali | Mumbai | 6,500 |
5 | Hardik | Bhopal | 8,500 |
6 | Komal | Hyderabad | 4,500 |
7 | Muffy | Indore | 10,000 |