我有以下查询
-- 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月删除记录,你能帮我解决这个问题吗?
答案 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())