【问题标题】:SQL Server Delete records greater than this time last yearSQL Server 删除大于去年这个时间的记录
【发布时间】:2016-11-28 21:18:42
【问题描述】:

我使用的是 SQL Server 2012。我需要删除大于去年这个时间的数据。

到目前为止,例如,删除所有超过 28/11/2015 的记录。

这是滚动的,它将成为每天运行的 SP 的一部分,因此它每天都会检查当前日期并删除。最好的方法是什么?

DELETE tblmytable
where MyDateField > GETDATE ()

我怎么改成说> 去年的今天?

【问题讨论】:

  • 你的意思是小于吗?今天比去年这个时候要好。假设您正在尝试删除旧记录?

标签: sql sql-server sql-server-2012


【解决方案1】:

使用日期添加

DELETE 
from tblmytable
where MyDateField > dateadd(yy, -1, GETDATE ())

【讨论】:

    【解决方案2】:

    知道了,这就是答案:

    Delete tblmytable
    where MyDateField > DATEADD(year, -1, GETDATE())
    

    【讨论】:

    • 关闭时,其语法不正确,删除后丢失。
    【解决方案3】:

    你可以试试这个:

    delete from table
    where dateField > dateadd(yy, -1, getdate())
    

    【讨论】:

    • 这个问题已经有另一个用户发布了相同的答案。如果您想区分您的答案,请添加更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2020-07-15
    • 2011-03-20
    相关资源
    最近更新 更多