更新时间:2026-10-21 GMT+08:00
货币类型
货币类型用于存储带有固定小数精度的货币金额。
表1中显示的范围基于两位小数精度。该类型支持多种输入格式,包括整型、浮点型或者典型的货币格式(如“$1,000.00”)。根据区域字符集,输出一般是最后一种形式。
numeric、int和bigint类型的值可以直接转换为money类型。对于real和double precision类型,建议先转换为numeric类型,再转换为money类型,例如:
1 2 3 4 5 | gaussdb=# SELECT '12.34'::float8::numeric::money; money -------- $12.34 (1 row) |
这种用法是不推荐的。由于浮点数存在精度丢失风险,因此不应该用来处理货币类型。
money类型的值可以转换为numeric类型而不丢失精度。转换为其他类型可能丢失精度,并且必须通过以下两步来完成:
1 2 3 4 5 | gaussdb=# SELECT '52093.89'::money::numeric::float8; float8 ---------- 52093.89 (1 row) |
当两个money类型的值进行除法运算时,将返回double precision类型的结果(即一个纯数字,而不是money类型);货币单位会在运算过程中相互抵消。
父主题: 数据类型