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

MySQL:如何查询包含指定月份的出行日期区间记录

MySQL 查询指定月份内有出行记录的人员

要匹配所有出行区间与指定月份有交集的记录(包括完全覆盖该月份的情况),核心是判断两个时间区间是否重叠:目标月份的区间是2024-06-01至2024-06-30,出行区间是departure_date至return_date,只要两个区间有重叠就需要被筛选出来。

对应的SQL查询语句如下:

SELECT name, departure_date, return_date
FROM departures
WHERE 
  departure_date <= '2024-06-30' 
  AND return_date >= '2024-06-01';

条件说明

  • departure_date <= '2024-06-30':确保出行的开始时间不晚于目标月份的最后一天,排除那些在7月及之后才出发的记录。
  • return_date >= '2024-06-01':确保出行的结束时间不早于目标月份的第一天,排除那些在5月及之前就结束的记录。

这两个条件组合后,就能覆盖所有符合要求的场景:

  • 出发和返回都在2024年6月内
  • 出发在5月、返回在6月
  • 出发在6月、返回在7月
  • 出发在5月、返回在7月(完全覆盖6月)

如果需要适配动态月份(比如传入参数),可以用日期函数自动生成目标月份的首尾日期,示例如下(以2024年6月为例):

SELECT name, departure_date, return_date
FROM departures
WHERE 
  departure_date <= LAST_DAY('2024-06-01')
  AND return_date >= DATE_FORMAT('2024-06-01', '%Y-%m-01');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:54:53