2016-11-28 94 views
0

我正在使用SQL Server 2012.我需要删除比去年更大的数据。SQL Server删除大于去年这个时间的记录

到目前为止,请删除大于28/11/的任何记录。

虽然这是滚动,并将成为每天将运行的SP的一部分,所以它每天都会检查当前日期并删除。做这个的最好方式是什么?

DELETE tblmytable 
where MyDateField > GETDATE() 

我该如何改变>去年的今天?

+1

你的意思是*小于*?今天比去年的这个时间更大。假设您试图删除旧记录? –

回答

5

使用DATEADD

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

明白了,这就是答案:

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

虽然关闭,但其语法不正确,您在删除后缺少。 –

-2

你可以试试这个:

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

此问题已由其他用户发布相同答案。如果你想区分你的答案,请添加更多的细节。 – mmushtaq