您好,登錄后才能下訂單哦!
CREATE or REPLACE FUNCTION insert_p_date() RETURNS text as ```
$$
DECLARE
sql_string text;
sdate timestamp without time zone;
ldate timestamp without time zone;
_wtid integer;
--一段時(shí)間內(nèi)每個(gè)月第一天
cur1 cursor for select date(zz) from generate_series(date_trunc('month',to_date('20171001','yyyymmdd')),date_trunc('month',to_date('20180401','yyyymmdd')),'1 month') as tt(zz);
curs2 refcursor;
BEGIN
--打開
open cur1;
loop
fetch cur1 into sdate;
-- 假如沒有數(shù)據(jù),結(jié)束循環(huán)
Exit when NOT found;
--一段時(shí)間內(nèi)的最后一個(gè)月的最后一天
select (date_trunc('month',sdate) + INTERVAL '1 MONTH - 1 day') into ldate;
--上個(gè)月最后一天
--select date_trunc('day', date_trunc('month',sdate)) - interval '1 day' into ldate;
--斷點(diǎn)拋出一個(gè)月第一天
raise notice 'sdate==================================================================%', sdate;
--定義一個(gè)月內(nèi)的內(nèi)的所有單臺(tái)設(shè)備open curs2 for select distinct wtid from statisticdata_bak where rectime between sdate and ldate;
loop
--取記錄
fetch curs2 into _wtid;
-- 假如沒有檢索到數(shù)據(jù),結(jié)束循環(huán)
Exit when NOT found;
--拋出設(shè)備信息
raise notice '_wtid=%', _wtid;
--執(zhí)行數(shù)據(jù)導(dǎo)入按照設(shè)備每個(gè)月
sql_string := 'insert into statisticdata select * from statisticdata_bak where wtid='||_wtid||' and rectime between '''||sdate||''' and '''||ldate||''';';
execute sql_string;
raise notice '執(zhí)行完成=%', _wtid;
end loop;
close curs2;
end loop;
--關(guān)閉游標(biāo)1
close cur1;--返回結(jié)果
RETURN '導(dǎo)入成功!';
END;
$$
LANGUAGE plpgsql;
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。