money类型存储固定小数精度的货币数字。小数的精度由数据库的lc_monetary设置决定。
名字 | 存储尺寸 | 描述 | 范围 |
money | 8 bytes | 货币额 | -92233720368547758.08到+92233720368547758.07 |
postgres=# show lc_monetary;
lc_monetary
-------------
en_US.UTF-8
(1 row)
postgres=# select 123.45::money;
money
---------
$123.45
(1 row)
postgres=# select 123.456789::money;
money
---------
$123.46
(1 row)
postgres=# set lc_monetary='zh_CN';
SET
postgres=# show lc_monetary;
lc_monetary
-------------
zh_CN
(1 row)
postgres=# select 123.45::money;
money
----------
¥123.45
(1 row)
postgres=# select 123.456789::money;
money
----------
¥123.46
(1 row)
(四舍五入保留2位小数)
postgres=# create table testrmb(rmb money);
CREATE TABLE
postgres=# insert into testrmb values(123.45);
INSERT 0 1
postgres=# select * from testrmb;
rmb
----------
¥123.45
(1 row)
postgres=# insert into testrmb values(123.456); ----四舍五入
INSERT 0 1
postgres=# select * from testrmb ;
rmb
----------
¥123.45
¥123.46
(2 rows)
postgres=# set lc_monetary='en_US.UTF-8'; ----数值是相同的,显示不同的货币单位
SET
postgres=# select * from testrmb ;
rmb
---------
$123.45
$123.46
(2 rows)