那些年遇到的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所遇到的大坑,希望大神能夠指點交流