MariaDB FORMAT() 函数使用指南

在 MariaDB 中,FORMAT() 是一个内置的字符串函数,将给定的数字四舍五入到指定的小数位数,并按照 #,###,###.## 之类的格式进行格式化,然后将结果作为字符串返回。

MariaDB FORMAT() 语法

这里是 MariaDB FORMAT() 函数的语法:

FORMAT(number, decimal_places[, locale])

参数

number
必需的。 需要格式化的数字。
decimal_places
必需的。 要保留的小数位数。
locale
可选的。 地区代码。

如果您没有提供足够的参数, MariaDB 将报告错误: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘)’ at line 1。

返回值

MariaDB FORMAT() 函数返回具有指定小数位数的类似于 #,###,###.## 格式(由 locale 参数或者当前会话的地区设置决定)的字符串。

如果参数 number 为字符或字符串,FORMAT() 将按照如下规则尝试转为数字:

  • 如果以数字开头,则将开头的数字部分转为数字。
  • 如果不能转为数字,则按照 0 处理。

如果参数 numberNULLFORMAT() 函数将会返回 NULL

如果参数 decimal_places0FORMAT() 函数返回的内容没有小数部分。

如果参数 decimal_places 超过原有的小数位数,FORMAT() 函数将在小数后面补 0。

MariaDB FORMAT() 示例

基本示例

下面的语句展示了 MariaDB FORMAT() 函数的基本用法:

SELECT FORMAT(12345.6789, 2);

输出:

+-----------------------+
| FORMAT(12345.6789, 2) |
+-----------------------+
| 12,345.68             |
+-----------------------+

地区

您可以使用地区以按照指定地区的格式输出:

SELECT
  FORMAT(12345.6789, 2),
  FORMAT(12345.6789, 2, 'rm_CH');

输出:

+-----------------------+--------------------------------+
| FORMAT(12345.6789, 2) | FORMAT(12345.6789, 2, 'rm_CH') |
+-----------------------+--------------------------------+
| 12,345.68             | 12'345,68                      |
+-----------------------+--------------------------------+

您可以在此处查看 MariaDB 支持的地区设置

补 0

如果指定的小数位超过原有的小数位数, FORMAT() 将在小数后面补零。下面的示例说明这一点:

SELECT
  FORMAT(12, 4),
  FORMAT(12.34, 4);

输出:

+---------------+------------------+
| FORMAT(12, 4) | FORMAT(12.34, 4) |
+---------------+------------------+
| 12.0000       | 12.3400          |
+---------------+------------------+

非数字

MariaDB FORMAT() 将按照如下规则处理非数字参数:

  • 如果以数字开头,则将开头的数字部分转为数字。
  • 如果不能转为数字,则按照 0 处理。

下面的示例说明了这一点:

SELECT
  FORMAT('124Abc', 4),
  FORMAT('Abc123', 4),
  FORMAT('Abc', 4);

输出:

+---------------------+---------------------+------------------+
| FORMAT('124Abc', 4) | FORMAT('Abc123', 4) | FORMAT('Abc', 4) |
+---------------------+---------------------+------------------+
| 124.0000            | 0.0000              | 0.0000           |
+---------------------+---------------------+------------------+

在本示例中, '124Abc' 被转为 124,而 'Abc123''Abc' 被转为 0

结论

MariaDB FORMAT() 函数返回具有指定小数位数的类似于 #,###,###.## 格式(由 locale 参数或者当前会话的地区设置决定)的字符串。