持续时间30分钟后删除项目

时间:2020-07-07 23:49:51

标签: sql sql-server datetime

在数据库的一个表中,我有一个日期和时间列(datetime),用于存储事件发生的时间。我该如何删除 那件事发生后30分钟?

1 个答案:

答案 0 :(得分:3)

您可以安排任务运行。这样可以:

delete from t
    where datetimecol < dateadd(minute, -30, getdate());

但是,如何防止人们在删除它之前看到它呢?使用视图:

create view v_t as
    select t.*
    from t
    where datetimecol >= dateadd(minute, -30, getdate());

任何访问该视图的人都只会看到最近的事件。定期-每天一次,每周一次,您可以安排工作来清除较旧的事件。