📜  MySQL数字格式功能

📅  最后修改于: 2020-11-19 00:58:49             🧑  作者: Mango

MySQL数字格式功能

MySQL中的FORMAT函数用于将数字格式化为“#,###。##”的格式,并在某些小数位后四舍五入。格式化数字后,它将以字符串返回值。

当我们计算数据库中的值(例如库存周转率或产品的平均净价)时,此函数很有用。计算结果是一个带有许多小数位的十进制值。在这种情况下,需要格式化这些数字以使用户易于理解。

因此,我们在MySQL中使用FORMAT函数的以下语法

FORMAT(N, D, locale);

此函数接受以下讨论的三个参数:

Parameter Explanation
N It is a number that we want to format.
D It is a number of decimal places that we want to round the number. If D is 0, the result returns a string without any places.
locale It is an optional argument. It specifies the locale to use that determines the decimal point result, thousands of separators, and grouping between separators. By default, MySQL will use an en_us locale.

MySQL版本支持

FORMAT函数可以支持以下MySQL版本:

  • MySQL 8.0
  • MySQL 5.7
  • MySQL 5.6
  • MySQL 5.5
  • MySQL 5.1
  • MySQL 5.0
  • MySQL 4.1
  • MySQL 4.0
  • MySQL 3.23.3

MySQL FORMAT函数示例

让我们通过各种示例来了解FORMAT函数在MySQL中的工作方式。

以下函数将数字格式化为最多三位小数。

mysql> SELECT FORMAT(12342.123456, 3);

执行完上述函数,我们将获得以下输出:

接下来,以下语句使用FORMAT函数,其中第二个参数为零。

mysql> SELECT FORMAT(13600.2021, 0);

执行后,我们将获得以下输出,在该输出中,我们可以看到生成的结果没有任何小数位。

以上两个函数默认情况下使用en_US语言环境。这是因为我们没有为该函数提供任何语言环境。现在,该语句使用de_DE语言环境而不是en_US。

mysql> SELECT FORMAT(13600.2021, 2, 'de_DE');

我们将在下面获得输出,在该输出中,我们可以看到de_DE语言环境使用(,)逗号运算符作为小数点。

让我们了解数据库中的上述函数。假设我们的数据库具有包含以下数据的下表:

我们可以使用以下语句来计算衬衫的库存值:

mysql> SELECT name, stock * MRP AS stock_value FROM shirts;

由于许多小数位,它将给出以下看起来不太好的输出。

我们可以使用FORMAT函数使它更好。执行以下语句,返回最多两个小数位的股票值。

mysql> SELECT i, 
FORMAT(stock*MRP, 2) AS stock_value 
FROM shirts ORDER BY stock_value;d, name

它将给出如下输出。