admin 管理员组

文章数量: 1087652

plsql按时间循环删除数据

按天删除数据

declare HOWMANY_10MINS NUMBER;SPECIFY_TIME   DATE := TO_DATE('2020/09/15 23:59:59','yyyy/MM/dd hh24:mi:ss');--截止日期BEGIN_TIME     DATE;END_TIME       DATE;
beginSELECT (SPECIFY_TIME - TRUNC(MIN(T.sampletime), 'DD')) HOWMANY_10MINSINTO HOWMANY_10MINSFROM datastore T;--获取间隔天数FOR X IN 0 .. HOWMANY_10MINS LOOPBEGIN_TIME := SPECIFY_TIME - (X + 1) ;--增量1END_TIME   := SPECIFY_TIME - X;-- delete 操作,请批改删除表信息,及 where 过滤条件。DELETE FROM datastore TWHERE T.sampletime BETWEEN BEGIN_TIME AND END_TIME;--时间条件COMMIT;END LOOP;
end;

按小时删除,如果本身显示只有天的话,可能有问题

declare HOWMANY_10MINS NUMBER;SPECIFY_TIME   DATE := TO_DATE('2020/09/19 23:59:59','yyyy/MM/dd hh24:mi:ss');BEGIN_TIME     DATE;END_TIME       DATE;
beginSELECT (SPECIFY_TIME - TRUNC(MIN(T.sampletime), 'DD')) * 24 HOWMANY_10MINSINTO HOWMANY_10MINSFROM datastore T;FOR X IN 0 .. HOWMANY_10MINS LOOPBEGIN_TIME := SPECIFY_TIME - (X + 1)/24 ;END_TIME   := SPECIFY_TIME - X/24;-- delete 操作,请批改删除表信息,及 where 过滤条件。DELETE FROM datastore TWHERE T.sampletime BETWEEN BEGIN_TIME AND END_TIME;COMMIT;END LOOP;
end;

本文标签: plsql按时间循环删除数据