您好,登錄后才能下訂單哦!
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;
--一段時間內每個月第一天
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;
-- 假如沒有數據,結束循環
Exit when NOT found;
--一段時間內的最后一個月的最后一天
select (date_trunc('month',sdate) + INTERVAL '1 MONTH - 1 day') into ldate;
--上個月最后一天
--select date_trunc('day', date_trunc('month',sdate)) - interval '1 day' into ldate;
--斷點拋出一個月第一天
raise notice 'sdate==================================================================%', sdate;
--定義一個月內的內的所有單臺設備open curs2 for select distinct wtid from statisticdata_bak where rectime between sdate and ldate;
loop
--取記錄
fetch curs2 into _wtid;
-- 假如沒有檢索到數據,結束循環
Exit when NOT found;
--拋出設備信息
raise notice '_wtid=%', _wtid;
--執行數據導入按照設備每個月
sql_string := 'insert into statisticdata select * from statisticdata_bak where wtid='||_wtid||' and rectime between '''||sdate||''' and '''||ldate||''';';
execute sql_string;
raise notice '執行完成=%', _wtid;
end loop;
close curs2;
end loop;
--關閉游標1
close cur1;--返回結果
RETURN '導入成功!';
END;
$$
LANGUAGE plpgsql;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。