↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本。 PostgreSQL 8.4 已结束支持。 请参阅 当前版本手册.

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. 货币类型

名字存储尺寸描述范围
money8 字节货币额-92233720368547758.08 到 +92233720368547758.07

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.