货币类型存储带有固定小数精度的货币金额。
表3-5 中显示的范围假设有两位小数。可以以任意格式输入,包括整型、浮点型或者典
型的货币格式(如“$1,000.00”
)
。根据区域字符集,输出一般是最后一种形式。
名称
存储容量
描述
范围
money
8 字节
货币金额
-92233720368547758.08 到
+92233720368547758.07
numeric,int 和bigint 类型的值可以转化为money 类型。如果从real 和double precision
类型转换到money 类型,可以先转化为numeric 类型,再转化为money 类型,例如:
gbase=# SELECT '12.34'::float8::numeric::money;
money
--------
$12.34
(1 row)
这种用法是不推荐使用的。
浮点数不应该用来处理货币类型,
因为小数点的位数可能会
导致错误。
money 类型的值可以转换为numeric 类型而不丢失精度。
转换为其他类型可能丢失精度,
并且必须通过以下两步来完成:
GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
50
gbase=# SELECT '52093.89'::money::numeric::float8;
float8
----------