删除早于 xx 天的记录的 mssql 数据记录

Dropping mssql data records for records older than xx days

我正在尝试从我的数据库中删除所有超过 3 天的记录。

我写过这样的东西:

delete from Results WHERE [Date] > DATEADD(d, -3, getdate())

我想检查这个 sql 查询是否正确,因为我担心我可能会犯错误并删除超出我应该删除的内容...

这个查询正确吗?

总是在更新或删除语句之前检查 SELECT 子句中的 WHERE 子句:

SELECT DATEADD(d, -3, getdate())

首先检查 SELECT 中的 WHERE 子句 statement.It 给出您的预期日期意味着在 DELETE 中继续使用相同的 WHERE 子句。

您的代码正在删除所有 比 3 天更新 的内容,应该是:

DELETE FROM Results WHERE [Date] < DATEADD(DAY, -3, GETDATE())

否则,这对于删除早于 72 小时的所有内容是没问题的,尽管正如其他人所说,您绝对应该在数据副本上进行测试,或者至少使用 SELECT 语句

SELECT * FROM Results WHERE [date] < DATEADD(DAY, -3, GETDATE())

但是,如果你想删除三天前之前发生的一切(例如现在是星期一,我想删除星期五之前发生的一切)你需要消除时间方面。

DELETE FROM Results WHERE CONVERT(DATE, [date]) < DATEADD(DAY, -3, GETDATE())