SQL只返回前几个月

时间:2017-03-28 08:29:07

标签: sql sql-server

在我的表中,我有一个名为APPDATE的日期列,我想用它来限制查询只返回最后2个完整月份。

例如,今天 28/03/17 ,我希望查询仅返回 2017年2月 2017年1月的数据并且包含来自 2017年3月的任何数据。

我该怎么办?

目前我已经尝试过:

APPDATE > DATEADD(MONTH, -2, GETDATE()) 

其中包括March:(

1 个答案:

答案 0 :(得分:1)

尝试以下WHERE子句:

WHERE APPDATE < DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) AND
      APPDATE >= DATEADD(MONTH, -2, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0))

假设当前日期是3月,那么这个逻辑将保留所有早于3月1日且大于或等于1月1日的记录。