博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PostgreSQL数据类型-货币类型
阅读量:6276 次
发布时间:2019-06-22

本文共 1267 字,大约阅读时间需要 4 分钟。

hot3.png

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--------- $100.78(1 行记录)postgres=#

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

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

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

转载于:https://my.oschina.net/u/1011130/blog/1563727

你可能感兴趣的文章
DICOM医学图像处理:WEB PACS初谈
查看>>
maven assembly plugin使用
查看>>
5: Calling Programs(Working with programs)
查看>>
QML学习笔记-入门篇(2)
查看>>
H3C设备网络组建和设置
查看>>
windows上一样使用linux命令--xshell登陆cygwin
查看>>
Linux查看系统配置常用命令
查看>>
大端 VS 小端
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
虚拟机克隆之后无法正确获取静态ip
查看>>
Java 连接Kafka报错java.nio.channels.ClosedChannelExcep
查看>>
字符设备驱动程序——poll机制介绍
查看>>
Markdown使用
查看>>
iOS - cocoapods/pod
查看>>
Apache+Tomcat(windows环境下)整合
查看>>
Java程序员应该收藏的书籍
查看>>
小菜学设计模式——策略模式
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>