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

如何查询SQL中结束日期距开始日期不超过30天的2020年后数据

SQL实现2020年后起止间隔30天内数据筛选

你现有筛选条件仅覆盖了「2020年之后」的时间范围要求,补充起止日期间隔判断即可,以下是可直接复用的写法:

注:下文默认开始日期字段名为date_entry,结束日期为你现有代码中的date_exit,如果实际表字段名不同,直接替换对应位置的字段名即可。额外补充的非空、日期先后校验是为了过滤异常脏数据,不需要可以删掉。

  • 如果你用的是MySQL/MariaDB,DATEDIFF函数会返回两个日期相差的自然天数,直接写判断即可:
WHERE
  date_exit >= '2020-01-01'
  AND DATEDIFF(date_exit, date_entry) <= 30
  AND date_entry IS NOT NULL
  AND date_exit >= date_entry
  • 如果你用的是PostgreSQL,日期类型直接相减就能得到间隔值,用interval做单位匹配即可:
WHERE
  date_exit >= '2020-01-01'
  AND (date_exit - date_entry) <= INTERVAL '30 days'
  AND date_entry IS NOT NULL
  AND date_exit >= date_entry
  • 如果你用的是SQL Server,DATEDIFF函数需要指定时间单位参数,按天计算的写法如下:
WHERE
  date_exit >= '2020-01-01'
  AND DATEDIFF(day, date_entry, date_exit) <= 30
  AND date_entry IS NOT NULL
  AND date_exit >= date_entry

如果业务要求只计算工作日间隔、排除法定节假日,需要额外关联你业务线维护的节假日日历表做差值计算,不属于通用日期筛选逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:03:22