我有一个名为“已预订会议”的表格,以下是该表格的结构。
会议表格
id | meeting_name | from_time | to_time | date
以下是结构:
CREATE TABLE `bookings` (
`id` int(11) NOT NULL,
`meeting_name` varchar(255) DEFAULT NULL,
`from_time` time DEFAULT NULL,
`to_time` time DEFAULT NULL,
`date` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `bookings` (`id`, `meeting_name`, `from_time`, `to_time`, `date`) VALUES(
(1, 'meeting1', '09:00:00', '10:30:00', '2018-07-26'),
(2, 'meeting2', '11:40:00', '12:25:00', '2018-07-26');
(3, 'meeting3', '03:40:00', '04:25:00', '2018-07-26'););
我在这里尝试找到两个时间之间的可用时间段。假设我输入起始时间
为10:00:00
,结束时间
为01:00:00
,则应返回该时间段内所有会议,并找出它们之间的可用时间。
我对mysql不是很熟悉,所以尝试了几个查询,但没有得到预期的结果。
SELECT *
FROM `bookings`
WHERE bookings.from_time>="10:00:00" and bookings.to_time<="01:00:00"
SELECT *
FROM `bookings`
WHERE bookings.from_time>="10:00:00" or
bookings.to_time<="10:00:00" or
bookings.from_time>="01:00:00" or
bookings.to_time<="01:00:00"
预期结果:如果我传递的时间在10:00:00.00到13:00:00之间,则应返回以下结果:
还有可用的时间段:
10:31:00 to 11:39:00
12.26 to 03:49:00
SELECT * FROM bookings WHERE bookings.from_time>="10:00:00" or to_time <="13:00:00"
- Madhan Varadhodiyil