create function get_num(p_date in date) return number num integer:=0; as for i in 0..30 loop if to_char(trunc(p_date,'mm')+i,'d')='7' then num:=num+1; end if; exit when trunc(p_date,'mm')+i=last_day(p_date); end loop; return num; end; /select get_num(sysdate) from dual;
return number
num integer:=0;
as
for i in 0..30 loop
if to_char(trunc(p_date,'mm')+i,'d')='7' then
num:=num+1;
end if;
exit when trunc(p_date,'mm')+i=last_day(p_date);
end loop;
return num;
end;
/select get_num(sysdate) from dual;
months_between(data1,data2) 是data1和data2之间的月份数,也就是两个月份相减,
到sqlplus里面试一下就知道了
exit when trunc(p_date,'mm')+i=trunc(last_day(p_date),'mm');