You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL的WHERE子句中使用GETDATE筛选当前月份之后的数据?

查询当前月份之后的数据解决方案

你的SQL语句原本是筛选当前年月的当月数据,所以只会返回和当前年月完全匹配的记录。要获取当前月份之后的所有数据,可采用以下两种简洁有效的写法:

推荐写法(高效利用索引)

SELECT *
FROM Table1
WHERE Import_Date >= DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()) + 1, 1)

该语句通过生成当前月份的下一个月第一天,筛选所有Import_Date大于等于这个日期的记录,能覆盖当年后续月份及未来年份的所有符合条件的数据,且因直接使用日期字段比较,可有效利用Import_Date字段的索引(如果存在)。

兼容旧版本SQL的写法

SELECT *
FROM Table1
WHERE DATEPART(yyyy, Import_Date) > YEAR(GETDATE())
   OR (DATEPART(yyyy, Import_Date) = YEAR(GETDATE()) AND DATEPART(mm, Import_Date) > MONTH(GETDATE()))

逻辑为:要么记录的年份大于当前年份,要么年份等于当前年份但月份大于当前月份,同样能筛选出当前月份之后的所有数据。

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 11:42:06