首页 > 解决方案 > 从本月获取去年的数据 SQL

问题描述

我的数据库表中有单独的列中的年份和月份。(如 2017 年,第 8 个月)我需要过滤该数据,因为我需要从今天开始的过去一年的数据。我想要返回 13 个月的数据。

如果今天是 2018 年 8 月 13 日,我只需要 2017 年 8 月到 2018 年 8 月的数据。

我是这样试的

SELECT Year,Month,News
FROM TBL_NEWS
WHERE Year >= cast(datepart(yyyy,DATEADD(yyyy,-1,getdate()))

标签: sqlsql-server

解决方案


您已将日期分成两列。这可能很棘手。这是 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 个月的数据,<请将<=.


推荐阅读