如何删除在特定时间窗口之间创建的表中的记录?

时间:2016-01-22 08:58:59

标签: database oracle oracle11g

我有要求从每天上午9点到晚上11点创建的表中删除记录。我已经找到了类似的东西 -

delete * FROM mytable 
WHERE TO_NUMBER(TO_CHAR(entry_date,'HH24MI')) BETWEEN 0900 AND 2300;

然而,这会删除在时间窗口中创建的所有记录,而我只想要它在当天。我怎样才能在这里使用sysdate?或者还有其他方法吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

你已经删除了日期部分,你应该做这样的事情

DELETE * FROM mytable WHERE entry_date BETWEEN trunc(SYSDATE)+9/24 and trunc(SYSDATE)+23/24

我使用9/24和23/24因为日期算术工作天数,所以9/24是9小时。