2016-11-28 140 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