PostgreSQL数据类型-货币类型

PostgreSQL数据类型-货币类型,第1张

概述PostgreSQL支持货币(money)类型,在内存中占用8 位空间,表示范围-92233720368547758.08 to +92233720368547758.07,有别于变精度浮点类型real 和 double precision,和numeric有些相似,都可以保证精度,区别在于货币类型会截取小数点后数据,有输出格式,输出格式受到lc_monetary设置影响。 #查看Linux系统l

Postgresql支持货币(money)类型,在内存中占用8 位空间,表示范围-92233720368547758.08 to +92233720368547758.07,有别于变精度浮点类型real 和 double precision,和numeric有些相似,都可以保证精度,区别在于货币类型会截取小数点后数据,有输出格式,输出格式受到lc_monetary设置影响。

#查看linux系统lc_monetarypostgres=# show lc_monetary; lc_monetary------------- zh_CN.UTF-8(1 行记录)#查看windows系统lc_monetary,数据库版本10.0test=# show lc_monetary;                     lc_monetary----------------------------------------------------- Chinese (SimplifIEd)_People's Republic of China.936(1 行记录)test=#---执行一个简单查询,提示:数据被截取显示postgres=# select '111.333333'::money;  money---------- ¥111.33(1 行记录)

查看lc_monetary可支持设置类型。切换lc_monetary值不同查看结果。Postgresql默认值为C,支持本地化。

minmin@debian:~$ locale -aCC.UTF-8POSIXzh_CN.utf8minmin@debian:~$---切换至默认值postgres=# set lc_monetary='C';SETpostgres=#postgres=#postgres=# set lc_monetary='POSIX';SETpostgres=#postgres=# select '100.777'::money;  money--------- 0.78(1 行记录)postgres=#

切换至POSIX以后,货币显示格式发生变化。

postgres=# set lc_monetary='C';SETpostgres=# select '100.777'::money;  money--------- 0.78(1 行记录)postgres=# set lc_monetary='zh_CN.utf8';SETpostgres=# select '100.777'::money;  money---------- ¥100.78(1 行记录)postgres=#

注意:money不包含币种信息,严格来讲不算货币数据类型,实际使用过程中还存在诸多不便,因此有人推荐使用decimal(numeric)数据类型。

总结

以上是内存溢出为你收集整理的PostgreSQL数据类型-货币类型全部内容,希望文章能够帮你解决PostgreSQL数据类型-货币类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1171911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存