我的数据库表的单独列中有年份和月份。(例如Year 2017,Month 8),我需要过滤该数据,因为我需要今天的过去一年的数据。我希望返回13个月的数据。
如果今天是2018年8月13日,并且我仅需要从8/2017到8/2018的数据。
我这样尝试过
SELECT Year,Month,News
FROM TBL_NEWS
WHERE Year >= cast(datepart(yyyy,DATEADD(yyyy,-1,getdate()))
答案 0 :(得分:2)
您已将日期分为两列。那可能很棘手。这是12个月数据的一种方法:
where datefromparts(year, month, 1) >= datefromparts(year(getdate()) - 1, month(getdate()), 1) and
datefromparts(year, month, 1) < datefromparts(year(getdate()), month(getdate()), 1)
如果您实际上需要13个月的数据,请将<
更改为<=
。