SQL Server 当月减去5个月的所有年份的数据

7bsow1i6  于 2022-11-21  发布在  其他
关注(0)|答案(2)|浏览(179)

我正在尝试获取当前日期前5个月的数据。我已尝试

MONTH(GETDATE()) - MonthNum ='5'

其中,monthnum已从上一个CTE中的日期解析。
这适用于第6个月及以后,但不适用于前几个月。
最终目标是,例如,在11月,我只能看到6月的数据,而不仅仅是当前年份的数据。

SELECT * 
FROM TABLE 
WHERE MONTH(GETDATE()) - AnniMonthNum ='5'
wgmfuz8q

wgmfuz8q1#

根据您的说明,尝试以下操作:

DECLARE @month = MONTH(DATEADD(month,-5,GETDATE())); 

SELECT t.* 
FROM table as t 
WHERE MONTH(t.transaction_date) = @month;

或者,如果在检视中使用,请直接在WHERE子句中取代计算,如下所示:

SELECT t.* 
FROM table as t 
WHERE MONTH(t.transaction_date) = MONTH(DATEADD(month,-5,GETDATE()));

如果你已经计算出了月数,那么用这个变量替换DATEADD函数中的interval。下面我用monthnum乘以-1来确保interval是负数。

SELECT t.* 
FROM table as t 
WHERE MONTH(t.transaction_date) = MONTH(DATEADD(month,-1 * monthnum,GETDATE()));
qnakjoqk

qnakjoqk2#

尝试使用DateDiff

where DateDiff(month,AnniversaryDate,GetDate)=5

相关问题