我有要求从每天上午9点到晚上11点创建的表中删除记录。我已经找到了类似的东西 -
delete * FROM mytable
WHERE TO_NUMBER(TO_CHAR(entry_date,'HH24MI')) BETWEEN 0900 AND 2300;
然而,这会删除在时间窗口中创建的所有记录,而我只想要它在当天。我怎样才能在这里使用sysdate?或者还有其他方法吗?
非常感谢。
答案 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小时。