©
This document uses PHP Chinese website manual Release
money类型存储带有固定小数精度的货币金额,可查阅Table 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与原数据库相同,或具有等价值。
Table 8-3. 货币类型
名字 | 存储容量 | 描述 | 范围 |
---|---|---|---|
货币 | 8字节 | 货币金额 | -92233720368547758.08到+92233720368547758.07 |