Sql server 关于从数据库中删除旧记录的问题
所以我有一个SQL Server表 此表有一列,显示插入时的日期时间 如何运行总是删除24小时前记录的程序?Sql server 关于从数据库中删除旧记录的问题,sql-server,tsql,Sql Server,Tsql,所以我有一个SQL Server表 此表有一列,显示插入时的日期时间 如何运行总是删除24小时前记录的程序?从何处删除
从何处删除DELETE FROM <tableName> WHERE <col> < getdate()-1
是的,请看以下内容: 然后只需安排查询:
delete from table_name where date_created < dateadd(d,-1,GETDATE())
从创建日期的表名称中删除
我想在这次讨论中补充几点
date_created < dateadd(d,-1,GETDATE())
date\u创建
到
date\u创建
显示dateadd函数为评估增加了相当大的开销,虽然它比扫描PK更快,但最好还是选择最快的选项。我的问题主要是如何设置类似的内容,以确保数据库中没有超过24小时的记录,但是,这不是只删除前一天的记录,不考虑小时数等吗?
getdate()
函数返回当前日期时间;从中减去1将减去24小时,保持时间信息完整(例如,select cast('2011-04-05 12:24:39.943'作为datetime)-1='2011-04-04 12:24:39.943'
)。您只需将未来日期插入deleteAfter或expirationDate列,删除delete语句中的任何计算并将其移动到insert中。当然,你的里程可能会有所不同,所以基准,基准,基准。
date_created < getdate()-1