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

如何修改Ms Access查询WHERE子句以筛选上月及本月数据?

解决Access查询获取本月及上月全部数据的问题

你的问题很典型——用固定天数(比如60天)来筛选月份数据确实会踩坑,毕竟不同月份天数不一样,要是遇到1月,减60天还会跨到去年,根本覆盖不了完整的上月。这里给你两个精准的解决方案,根据你的实际需求选就行:

方案1:获取上月全月 + 本月至今的数据

这个适用于你需要看到上月所有记录,加上本月到今天的所有数据:

WHERE t.AllDate >= DateSerial(Year(Date()), Month(Date())-1, 1) 
  AND t.AllDate <= Date()

方案2:获取上月全月 + 本月全月的数据

如果不管当前日期是几号,都要包含本月完整的所有数据(比如今天是5月15号,也要包含5月16到31号的未来记录,如果有的话):

WHERE t.AllDate >= DateSerial(Year(Date()), Month(Date())-1, 1) 
  AND t.AllDate <= DateSerial(Year(Date()), Month(Date())+1, 0)

关键函数解释

  • DateSerial(year, month, day):Access里生成指定日期的核心函数,非常适合处理月份边界:
    • DateSerial(Year(Date()), Month(Date())-1, 1):直接生成上月第一天,比如现在是2024年5月,就返回2024-04-01
    • DateSerial(Year(Date()), Month(Date())+1, 0):用“下月0号”的小技巧得到本月最后一天,5月的话就返回2024-05-31
    • 同理,DateSerial(Year(Date()), Month(Date()), 0)可以单独拿到上月最后一天,如果你只需要上月数据的话,用这个和上月第一天组合就行

这种方式完全不受月份天数影响,不管是2月的28天还是3月的31天,都能精准筛选出你要的完整月份数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:05:43