MySQL FORMAT() 用法与实例

在 MySQL 中,FORMAT() 函数用于四舍五入给定的数字到指定的位数,并返回带有分隔符的数字字符串。

发布于

在 MySQL 中,FORMAT() 函数用于四舍五入给定的数字到指定的位数,并返回带有分隔符的数字字符串。

语法

您可以使用以下语法:

FORMAT(num, decimal_places [, locale])

在这个语法中:

  • num 是要格式化的数字。
  • decimal_places 是要将数字四舍五入到的小数位数。
  • locale 是一个可选参数,用于指定要使用的区域设置的格式约定。

示例 1

要将数字 12345.6789 四舍五入为两位小数,请使用以下语句:

SELECT FORMAT(12345.6789, 2);

输出:

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

在本示例中,小数部分 6789 向上舍入为 68。整数部分使用千分符分割。

示例 2

如果第二个参数的数字大于要格式化的数字中的小数位数,FORMAT() 函数将在数字最后补 0:

SELECT FORMAT(12345.6789, 9);

输出:

+-----------------------+
| FORMAT(12345.6789, 9) |
+-----------------------+
| 12,345.678900000      |
+-----------------------+

示例 3 - 区域

您可以通过第三个参数设置区域,以按照指定区域的习惯返回数字:

SELECT
  '12345.6789' AS 'Number',
  FORMAT(12345.6789, 3, 'de_DE') AS 'de_DE',
  FORMAT(12345.6789, 3, 'rm_CH') AS 'rm_CH';

输出:

+------------+------------+------------+
| Number     | de_DE      | rm_CH      |
+------------+------------+------------+
| 12345.6789 | 12.345,679 | 12'345,679 |
+------------+------------+------------+

下表是 MySQL 支持的区域设置:

区域设置值 意义
ar_AE 阿拉伯语 – 阿拉伯联合酋长国
ar_BH 阿拉伯语 – 巴林
ar_DZ 阿拉伯语 – 阿尔及利亚
ar_EG 阿拉伯语 – 埃及
ar_IN 阿拉伯语 – 印度
ar_IQ 阿拉伯语 – 伊拉克
ar_JO 阿拉伯语 – 约旦
ar_KW 阿拉伯语 – 科威特
ar_LB 阿拉伯语 – 黎巴嫩
ar_LY 阿拉伯语 – 利比亚
ar_MA 阿拉伯语 – 摩洛哥
ar_OM 阿拉伯语 – 阿曼
ar_QA 阿拉伯语 – 卡塔尔
ar_SA 阿拉伯语 – 沙特阿拉伯
ar_SD 阿拉伯语 – 苏丹
ar_SY 阿拉伯语 – 叙利亚
ar_TN 阿拉伯语 – 突尼斯
ar_YE 阿拉伯语 – 也门
be_BY 白俄罗斯语 – 白俄罗斯
bg_BG 保加利亚语 – 保加利亚
ca_ES 加泰罗尼亚语 – 西班牙
cs_CZ 捷克语 – 捷克共和国
da_DK 丹麦语 – 丹麦
de_AT 德语 – 奥地利
de_BE 德语 – 比利时
de_CH 德语 – 瑞士
de_DE 德语 – 德国
de_LU 德语 – 卢森堡
el_GR 希腊语 – 希腊
en_AU 英语 – 澳大利亚
en_CA 英语 – 加拿大
en_GB 英语 – 英国
en_IN 英语 – 印度
en_NZ 英语 – 新西兰
en_PH 英语 – 菲律宾
en_US 英语 – 美国
en_ZA 英语 – 南非
en_ZW 英语 – 津巴布韦
es_AR Spanish – Argentina
es_BO 西班牙语 – 玻利维亚
es_CL 西班牙语 – 智利
es_CO 西班牙语 – 哥伦比亚
es_CR 西班牙语 – 哥斯达黎加
es_DO 西班牙语 – 多米尼加共和国
es_EC 西班牙语 – 厄瓜多尔
es_ES 西班牙语 – 西班牙
es_GT 西班牙语 – 危地马拉
es_HN 西班牙语 – 洪都拉斯
es_MX 西班牙语 – 墨西哥
es_NI 西班牙语 – 尼加拉瓜
es_PA 西班牙语 – 巴拿马
es_PE 西班牙语 – 秘鲁
es_PR 西班牙语 – 波多黎各
es_PY 西班牙语 – 巴拉圭
es_SV 英语 – 萨尔瓦多
es_US 西班牙语 – 美国
es_UY 西班牙语 – 乌拉圭
es_VE 西班牙语 – 委内瑞拉
et_EE 爱沙尼亚语 – 爱沙尼亚
eu_ES 巴斯克语 – 巴斯克语
fi_FI 芬兰语 – 芬兰
fo_FO 法罗群岛 – 法罗群岛
fr_BE 法语 – 比利时
fr_CA 法语 – 加拿大
fr_CH 法语 – 瑞士
fr_FR 法语 – 法国
fr_LU 法语 – 卢森堡
gl_ES 加利西亚语 – 西班牙
gu_IN 古吉拉特语 – 印度
he_IL 希伯来语 – 以色列
hi_IN 印地语 – 印度
hr_HR 克罗地亚语 – 克罗地亚
hu_HU 匈牙利语 – 匈牙利
id_ID 英语 – 印度尼西亚
is_IS 冰岛语 – 冰岛
it_CH 意大利语 – 瑞士
it_IT 意大利语 – 意大利
ja_JP 日语 – 日本
ko_KR 韩语 – 大韩民国
lt_LT 立陶宛语 – 立陶宛
lv_LV 拉脱维亚语 – 拉脱维亚
mk_MK 马其顿语 – 前南斯拉夫马其顿共和国
mn_MN 蒙古 – 蒙古语
ms_MY 马来语 – 马来西亚
nb_NO 英语(博克马尔语) - 英国
nl_BE Dutch – Belgium
nl_NL Dutch – The Netherlands
no_NO Norwegian – Norway
pl_PL 波兰语 – 波兰
pt_BR 葡萄牙语 – 巴西
pt_PT 葡萄牙语 – 葡萄牙
rm_CH 罗曼什语 – 瑞士
ro_RO 英语 – 罗马尼亚
ru_RU 俄语 – 俄罗斯
ru_UA 俄语 – 乌克兰
sk_SK 斯洛伐克语 – 斯洛伐克
sl_SI 斯洛文尼亚语 – 斯洛文尼亚
sq_AL 阿尔巴尼亚语 – 阿尔巴尼亚
sr_RS 塞尔维亚语 – 南斯拉夫
sv_FI 瑞典语 – 芬兰
sv_SE 瑞典语 – 瑞典
ta_IN 泰米尔语 – 印度
te_IN 泰卢固语 – 印度
th_TH 泰语 – 泰国
tr_TR 土耳其语 – 土耳其
uk_UA 乌克兰语 – 乌克兰
ur_PK 乌尔都语 – 巴基斯坦
vi_VN 越南 - 越南
zh_CN 中文 – 中国
zh_HK 中文 – 香港
zh_TW 中文 – 中国台湾省