SQL Server代理会在午夜删除记录

我对SQL有点陌生,所以如果这个问题不太清楚,我会提前道歉。 我想在SQL Server代理中创建一个作业,该作业将在24小时后删除一行。我的问题是SQL Server代理会在午夜而不是24小时后删除记录,例如,如果我在下午3点创建记录,那么该记录将在上午12点而不是第二天下午3点删除。

有什么可以解决这个问题的吗?

感谢您的帮助

wduke8818 回答:SQL Server代理会在午夜删除记录

不要采用这种方法!使用视图,然后再清理作业。

-- Have an expiration column in the table
create table t (
    . . .
    expire_datetime datetime
);

-- Filter out the unexpired rows for the view
create view v_t as
    select t.*
    from t
    where expire_datetime > getdate();

创建记录时可以设置expire_datetime。或者,如果您愿意,也可以只是创建日期时间加上24小时:

alter table t add expire_datetime as (dateadd(hour,24,createdAt));

通过视图进行所有访问。然后,您可以定期运行作业以删除过期的记录。您可以每天一次,每小时一次,每周一次-随时进行此操作。

本文链接:https://www.f2er.com/3086490.html

大家都在问