删除oracle SQL中超过24小时的记录

And*_*rew 5 sql oracle datetime date sql-delete

我想删除超过24小时的所有记录.我使用下面的查询相同但有时不完美运行.我想知道我的查询是对还是错?或者哪种方式更好.

delete from TEMP_SERVICE_OPTION where EVENT_DATE < TRUNC(SYSDATE) - 1;
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 10

如果你想要超过24小时,那么:

where event_date < sysdate - 1
Run Code Online (Sandbox Code Playgroud)

如果你想在昨天之前,那么做:

where event_date < trunc(sysdate) - 1
Run Code Online (Sandbox Code Playgroud)

至于性能,这取决于要删除的行数.如果你的表只有几千行,那么这很好.如果它有数百万行,那么您可能需要索引event_date.或者,您甚至可能希望采用不同的方法 - 将数据选择到临时表中,截断原始表,然后重新插入.