db2工作笔记


// 生成32位随机数
CREATE OR REPLACE FUNCTION "RSPDB"."F_GETROUNDOF32" ()
specific F_GETROUNDOF32
LANGUAGE SQL
RETURNS varchar(40)
BEGIN atomic
declare v_branch_id_ods varchar(40);
declare v_count int;
declare v_branch_id_rsp varchar(40);
set v_branch_id_ods = (SELECT substr(max
(branch_id),1,24) || to_char(floor(RAND() * 89999999 + 10000000)) from SYS_branch_info);
set v_count = (select count(*) from sys_branch_info where branch_id = v_branch_id_ods);
set v_branch_id_rsp = (select branch_id from sys_branch_info where branch_id = v_branch_id_ods);
if v_count = 0 then
return v_branch_id_ods;
end if;
return v_branch_id_rsp;
END
select substr(A.ACCDATE,1,4) || '-' || substr(A.ACCDATE,5,2)|| '-' || substr(A.ACCDATE,7,2) as ACCDATE from F_INN_GEN_GL_BRIAC A


db2 取月所在的天数
select (current date + 1 month - day(current date + 1 month) days)
from sysibm.sysdummy1


计算月数
select timestampdiff(64,timestamp(to_date('2013-11-01','YYYY-MM-DD')) - timestamp(to_date('2012-11-01','YYYY-MM-DD'))) from sysibm.SYSDUMMY1

timestampdiff(64,timestamp(to_date(enddate,'YYYY-MM-DD')) - timestamp(to_date(startdate,'YYYY-MM-DD')))

求月数
db2函数 定义
CREATE FUNCTION "DB2INST"."F_GETMONTHS" (startdate varchar(40),enddate varchar(40))
RETURNS int
specific F_GETMONTHS
LANGUAGE SQL
BEGIN atomic
declare v_time int;
set v_time = (SELECT (year(to_date(enddate,'YYYY-MM-DD')) - year(to_date(startdate,'YYYY-MM-DD')))* 12 + (month(to_date(enddate,'YYYY-MM-DD')) - month(to_date(startdate,'YYYY-MM-DD'))) FROM sysibm.SYSDUMMY1);
return v_time;
END

验证 values(f_getmonths('2011-01-01','2012-03-03'))


[code="sql"]

CREATE OR REPLACE FUNCTION "DB2INST"."F_ISNUMBER"
(v_str varchar(100))
specific F_ISNUMBER
returns int
begin atomic
declare v_len int;
set v_len=length(v_str);
if v_len=0 or v_str is null then
return 0;
end if;
while v_len >0 do
if substr(v_str,v_len,1) not in ('0','1','2','3','4','5','6','7','8','9') then
return 0;
end if;
set v_len=v_len-1;
end while;
return 1;
end

values(F_ISNUMBER(123123)) return 1;

//去掉回车换行符号和 导入导出 带分隔符
select replace(OBJ_VAL,chr(10),'') from APP_FAST_RPT_DS_INFO where DATASET_ID = '48e4a83134664df10134665e7b25000b'
select replace(replace(OBJ_VAL,chr(13),''),chr(10),'') from APP_FAST_RPT_DS_INFO where DATASET_ID = '48e4a83134664df10134665e7b25000b'
db2 "export to f_com_com_sp_brctl.txt of del modified by codepage=1208 COLDEL| select * from f_com_com_sp_brctl"
db2 "import from f_com_com_sp_brctl.txt of del modified by codepage=1208 COLDEL| insert into f_com_com_sp_brctl_t"


[/code]



//环比
values (to_date(substr('20120531',1,6)||'01','yyyymmdd')-1 day)

2012-4-30 上午12:00:00

//同比


//比年初
values (to_date(substr('20120531',1,4)||'0101','yyyymmdd'))
2012-1-1 上午12:00:00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值