那些年遇到的DB2大坑
目录
1.在处理数据时常会遇到小数点数据精度问题,可以使用下面sql进行转换
2.在使用聚合函数时也会出现小数点数据精度问题(可以乘以丢失的小数位)
前言
记录在使用DB2数据库所遇到的大坑。
一、DB2是什么?
DB2 是美国IBM公司开发的一套关系型数据库管理系统 ,通常用于银行等需要大型数据库的地方。
二、使用DB2所遇到的问题
1.序列
查询序列时要加from表
select test.seq_xulie.nextval from sysibm.sysdummy1
2.函数
select test.func_hanshu('canshu') bieming from sysibm.dual
3.存储过程
call cmas.proc_cunchunguocheng()
三、DB2查询日期
1.当前日期(yyyy-MM-dd)
select current date from sysibm.dual
2.当前日期(yyyyMMdd)
select replace( char(current date),'-','') from sysibm.sysdummy1
3.上月末
select to_char(last_day(add_months(to_date('20201212','yyyymmdd'),-1)) ,'yyyymmdd')from sysibm.dual;
四、DB2数据精度问题
1.在处理数据时常会遇到小数点数据精度问题,可以使用下面sql进行转换
select cast(round(cast(a as float)/b,2) as decimal(10,2)) from sysibm.sysdummy1
2.在使用聚合函数时也会出现小数点数据精度问题(可以乘以丢失的小数位)
sum(100/a*10000000)
3.小数点前少0问题可以用拼接字符串解决
select to_char(cast(2.89 as decimal(10,2))) from sysibm.sysdummy1
总结
以上就是我在使用DB2所遇到的大坑,希望大神能够指点交流
来源:oschina
链接:https://my.oschina.net/u/4397122/blog/4917240