我有一个有两列的表,一列是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');