PostgreSQL: Money与lc_monetary

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010070255/article/details/83545284

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)

猜你喜欢

转载自blog.csdn.net/u010070255/article/details/83545284