选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.0 已于 2015 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

8.2. 货币类型 #

money类型以固定的小数精度存储货币金额;参见表 8.3。小数精度由数据库的lc_monetary设置决定。输入支持多种格式,包括整数字面量和浮点数字面量,以及典型的货币格式,例如'$1,000.00'。输出通常也采用后一种形式,但会受到区域设置影响。未加引号的数值可以通过先把它转换为text再转换为money的方式转换成money,例如:

SELECT 1234::text::money;

反过来,即把money值转换为数值类型,则没有与区域设置无关的简单方法。如果知道货币符号和千位分隔符,可以使用regexp_replace()

SELECT regexp_replace('52093.89'::money::text, '[$,]', '', 'g')::numeric;

由于该数据类型的输出依赖区域设置,因此在 lc_monetary 设置不同的数据库之间装入 money 数据时,可能无法正常工作。为了避免这类问题, 在将转储恢复到新数据库之前,应确保新数据库的 lc_monetary 设置与原数据库相同或等效。

表 8.3. 货币类型

Name Storage Size Description Range
money 8 字节 货币额 -92233720368547758.08 到 +92233720368547758.07

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。