删除给定特定范围内的表中行的简单方法是什么



我有一个有两列的表,一列是FLAG(1或0(,另一列是INSERT_DATE(格式:28/02/2017 23:15:08(。每隔 5 分钟,在该表中执行一条插入语句。

我需要删除一个月中每天上午 8:00 和晚上 8:00 之后插入的行(插入语句每 5 分钟内每天执行一次 mounth(。

有什么

简单的方法可以做到这一点,PSQL,触发器?

假设您的INSERT_DATE列是DATE数据类型,并且您要执行删除的月份是2017-02那么您可以执行以下操作:

DELETE FROM your_table
WHERE  (  EXTRACT( HOUR FROM insert_date ) < 8
       OR EXTRACT( HOUR FROM insert_date ) >= 20 )
AND    DATE '2017-02-01' <= insert_date
AND    insert_date < DATE '2017-03-01';

使用以下命令为每个月的最后一天创建一些调度程序作业:

delete from table1
where extract (hour from insert_date) not between 8 and 19
and trunc(sysdate, 'month') = trunc (insert_date, 'month');

最新更新