MySQL FORMAT函数

时间:2019-11-20 08:52:25  来源:igfitidea点击:

简介:本教程向您展示如何使用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函数格式化各种语言环境名称中的数字。