首页/数据/SQL 速查/数字格式化:FORMAT 与 to_char
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条
函数速查60 条
变更与事务52 条性能与执行计划72 条

数字格式化:FORMAT 与 to_char

给数字加千分位与小数位展示:MySQL 用 FORMAT(),PostgreSQL 用 to_char();输出都是字符串,仅用于展示层。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
SELECT FORMAT(1234567.891, 2);        -- '1,234,567.89'
SELECT FORMAT(1234567.891, 2, 'de_DE'); -- 德式分隔

PostgreSQL

PostgreSQL
SELECT to_char(1234567.891, 'FM999,999,999.00');
-- '1,234,567.89'(FM 去掉前导空格)
SELECT to_char(0.4567, 'FM990.99%');  -- 百分号需要构造,PG 不自动乘 100
MySQL FORMATx, 小数位[, 区域];四舍五入并加千分位
PostgreSQL to_char模板控制:9/G/D 占位、FM 去空格;不自动加百分号
返回类型两库都是字符串,不能直接参与数值运算

易错点

  • 对 FORMAT() 的结果排序是按字符串字典序('1,000' 会排在 '9' 前面),排序必须基于原始数值列
  • MySQL FORMAT 的区域参数依赖区域信息,跨环境(容器镜像差异)可能不一致,展示层格式化更稳

数据来源与参考

  • MySQL 8.0 Reference Manual · FORMAT
  • PostgreSQL Documentation · Data Type Formatting Functions
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌