如何格式化以"."作为千位分隔符、以","作为小数分隔符的数字?

mysqlmysqli database

您可以使用 format() 函数作为分隔符。该函数适用于 MySQL 版本大于或等于 5.5 的版本。 我们使用的是 8.0.12 版本

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.12    |
+-----------+
1 row in set (0.00 sec)

语法如下

SELECT FORMAT(yourColumnName, valueAfterDecimalPoint, 'de_DE') AS anyAliasNamefrom yourTableName;

为了理解上述语法,让我们创建一个表。创建表的查询如下

mysql> create table formatNumberDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Number DECIMAL(19,1)
   -> );
Query OK, 0 rows affected (1.13 sec)

使用 insert 命令在表中插入一些记录。

查询如下

mysql> insert into formatNumberDemo(Number) values(10000000000000.2);
Query OK, 1 row affected (0.15 sec)
mysql> insert into formatNumberDemo(Number) values(1000.4);
Query OK, 1 row affected (0.21 sec)
mysql> insert into formatNumberDemo(Number) values(1000000.6);
Query OK, 1 row affected (0.11 sec)
mysql> insert into formatNumberDemo(Number) values(100000000.7);
Query OK, 1 row affected (0.17 sec)
mysql> insert into formatNumberDemo(Number) values(100000000000000000.8);
Query OK, 1 row affected (0.15 sec)

使用 select 语句显示表中的所有记录。

查询如下

mysql> select *from formatNumberDemo;

以下是输出 −

+----+----------------------+
| Id | Number               |
+----+----------------------+
| 1  | 10000000000000.2     |
| 2  | 1000.4               |
| 3  | 1000000.6            |
| 4  | 100000000.7          |
| 5  | 100000000000000000.8 |
+----+----------------------+
5 rows in set (0.00 sec)

以下查询用于将数字格式化为使用 '.' 作为千位分隔符,使用 ',' 作为小数分隔符

mysql> SELECT FORMAT(Number, 3, 'de_DE') AS Numberformat from formatNumberDemo;

以下是输出 −

+-----------------------------+
| Numberformat                |
+-----------------------------+
| 10.000.000.000.000,200      |
| 1.000,400                   |
| 1.000.000,600               |
| 100.000.000,700             |
| 100.000.000.000.000.000,800 |
+-----------------------------+
5 rows in set (0.00 sec)

相关文章