首页 > 解决方案 > MySQL 根据时间范围选择

问题描述

我有一个插槽数据库,其中包含开始时间和结束时间( Date 也是,但那是 by )。因此,数据库中预订插槽的一些示例结果将是:

----------------------------------
start_time        -  end_time    -
----------------------------------
09:00                15:00
17:00                18:00
19:00                21:00
----------------------------------

因此,可以说我想检查以下时间是否可用:

09:00 - 10:00 - ( This is Unavailable in the results above )
18:00 - 19:00 - ( Available based on the results above )

处理这个问题的 MySQL 查询是什么?

标签: mysqltime

解决方案


SELECT *,
       NOT EXISTS ( SELECT NULL
                    FROM timeslot
                    WHERE timeslot.time_start < timerange.time_end
                      AND timerange.time_start < timeslot.time_end ) is_available
FROM timerange

小提琴


推荐阅读