需要SQL日期帮助

时间:2014-01-23 16:49:05

标签: sql

我有以下查询

-- DELETE Current month and Month - 1 records from MonthlyTbl
 DELETE FROM dbo.tbl_SDW_MONTHLY_AS
 WHERE [Month Number] > MONTH(GETDATE()) - 2
 AND [Year] = YEAR(GETDATE())

查询似乎没有从2013年12月删除记录,你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

你可以这样做。

declare @dt datetime 
set @dt = getdate() 

DELETE FROM dbo.tbl_SDW_MONTHLY_AS
WHERE 
100 * [Year] + [Month Number] >= 
(
100 * datepart(YEAR, dateadd(DAY, - datepart(DAY, @dt) - 1, @dt)) + 
datepart(MONTH, dateadd(DAY, - datepart(DAY, @dt) - 1, @dt))
)

答案 1 :(得分:0)

请勿使用MONTH编号和YEAR编号。

改为使用日期。

 DELETE FROM dbo.tbl_SDW_MONTHLY_AS
 WHERE [Date] > DATEADD(MONTH,-2,GETDATE())