我有一张桌子-
GENERIC_RECORDS (ENTRY_NO NUMBER,
DATE_TIME VARCHAR2(25) ,
LOG_ID VARCHAR2(20),
LOG_FILE_NAME VARCHAR2(200));
ENTRY_NO DATE_TIME LOG_ID LOG_FILE_NAME
1 2019-08-23 16:59:29.867 123 Log_temp1
2 2019-08-31 17:32:42.019 124 Log_temp2
3 2019-09-28 15:30:41.019 125 Log_temp3
4 2019-10-16 10:30:39.014 126 Log_temp4
我想从该表中删除早于1天的记录。在上面的示例中,只有最后一条记录应该保留
谢谢
答案 0 :(得分:1)
您可以将delete
与where
子句一起使用:
delete from generic_records
where date_time < to_char(sysdate - interval '1' day, 'YYYY-MM-DD HH24:MI:SS')
我建议您在尝试进行此操作之前先备份一下桌子,以确保不会造成永久性损害。
答案 1 :(得分:0)
那是我的解决办法:
delete from GENERIC_RECORDS where to_date(substr(date_time,1,19), 'YYYY-MM-DD HH24:MI:SS') < sysdate;