如何查询mysql以包含给定的一对包含重叠的unix时间戳?

42fyovps  于 2021-06-15  发布在  Mysql
关注(0)|答案(0)|浏览(212)

我使用基于 start 以及 end 从fullcalendar.js的ajax加载事件传递给它的unix时间戳(整数)。查询的简化版本如下:

SELECT
   * FROM `events`
WHERE
  `start` >= :start AND
  `end` <= :end

此查询排除了以下两种类型的事件,我希望将其包括在查询返回的结果集中:
数据库中存储的开始日期早于要查询的开始日期的事件。
存储在数据库中的结束日期在查询的结束日期之后的事件。
符合上述两个标准的事件。
我希望包括的两种被排除的事件类型都有部分属于所查询范围的事件。
以下使用的日期的格式更可读,以使问题更明显。实际数据采用unix时间戳(整数)格式。
php脚本接收的示例数据,传递到sql查询中的各个位置:

{
    "start": "10/28/2018",
    "end": "12/03/2018"
}

存储在数据库中的事件示例

开始时间在前面,但事件持续时间的天数在范围内

start: 10/19/2018
end: 11/04/2018

结束时间在之后,但事件持续时间的天数在范围内

start: 11/22/2018
end: 12/13/2018

开始在之前,结束在之后,但事件持续时间的天数在范围内

start: 10/19/2018
end: 12/13/2018

如何重写我的查询,以便给定开始和结束日期,任何日期在指定范围内的记录?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题