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

如何编写WHERE子句筛选y日期在x日期前后7天内的数据

筛选日期处于指定范围的WHERE子句写法

你的问题出在之前的条件只覆盖了x日期之后7天的范围,没包含x之前的7天,所以无法筛选出符合要求的数据。正确的逻辑是同时限定y不早于x往前推7天,且不晚于x往后推7天,以下是具体写法:

针对MySQL的写法

  • 如果需要保留时分秒等时间部分:
WHERE y >= DATE_SUB(x, INTERVAL 7 DAY) 
  AND y <= DATE_ADD(x, INTERVAL 7 DAY)
  • 如果只需要比较日期部分(忽略时分秒):
WHERE DATE(y) >= DATE_SUB(DATE(x), INTERVAL 7 DAY) 
  AND DATE(y) <= DATE_ADD(DATE(x), INTERVAL 7 DAY)

其他数据库适配说明

不同数据库的日期加减语法略有区别,核心逻辑不变:

  • PostgreSQL:用x - INTERVAL '7 days'和x + INTERVAL '7 days'替代DATE_SUB和DATE_ADD
  • SQL Server:用DATEADD(day, -7, x)和DATEADD(day, 7, x)

内容的提问来源于stack exchange,提问作者Karam Abu Shammala

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:31:09