MySQL FORMAT函数
简介:本教程向您展示如何使用MySQL FORMAT函数在各种语言环境中格式化十进制数字。
MySQL FORMAT函数简介
有时,您使用表达式或聚合函数(例如AVG)来计算数据库中的值,例如库存周转率,产品的平均净价格和平均发票值。
表达式的结果是带有许多小数位的小数。
要格式化这些数字,请使用具有以下语法的FORMAT函数:
FORMAT(N,D,locale);
FORMAT函数将数字N格式化为"#,###,###。
##"格式,四舍五入到D小数位。
它返回一个值作为字符串。
FORMAT函数接受三个参数:
N是您要格式化的数字。
D是要舍入的小数位数。
语言环境是一个可选参数,用于确定千位分隔符和分隔符之间的分组。
如果省略区域设置运算符,则默认情况下,MySQL将使用en_US。
以下链接提供了MySQL支持的所有语言环境名称。
MySQL FORMAT函数示例
请参阅以下使用FORMAT函数的示例。
SELECT FORMAT(12500.2015, 2);
下面的语句使用FORMAT函数,第二个参数为零,因此,结果没有任何小数位。
SELECT FORMAT(12500.2015, 0);
以下语句使用de_DE语言环境而不是en_US语言环境:
SELECT FORMAT(12500.2015, 2,'de_DE');
从结果中可以看到,de_DE语言环境使用点(。
)分组千位,用逗号(,)分组十进制。
让我们看一下示例数据库中的产品表。
要计算每种产品的库存价值,请按如下所示将库存数量和购买价格相乘:
SELECT productname, quantityInStock * buyPrice stock_value FROM products;
结果看起来不太好,因为有许多小数位。
为了使它更好,您可以结合使用两个功能:FORMAT和CONCAT。
FORMAT函数将股票值的格式四舍五入到小数点后两位。
并且CONCAT函数在股票价值字符串的开头添加了美元符号($):
SELECT productname, CONCAT('$', FORMAT(quantityInStock * buyPrice, 2)) stock_value FROM products;
请注意,FORMAT函数返回一个字符串值。
这意味着,如果要使用ORDER BY子句对FORMAT函数的结果进行排序,则MySQL将使用基于字符串而不是基于数字的结果进行排序。
例如,以下语句按字母顺序对库存值进行排序。
SELECT productname, CONCAT('$', FORMAT(quantityInStock * buyPrice, 2)) stock_value FROM products ORDER BY stock_value;
要对股票价值进行数字排序,请将表达式放在ORDER BY子句中,如下所示:
SELECT productname, CONCAT('$', FORMAT(quantityInStock * buyPrice, 2)) stock_value FROM products ORDER BY quantityInStock * buyPrice;
在本教程中,我们向您展示了如何使用MySQL FORMAT函数格式化各种语言环境名称中的数字。