【发布时间】:2019-01-03 18:10:42
【问题描述】:
我有一个叫预定会议的表,下面是表结构
会议桌
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'););
在这里我试图在两次之间找到可用的插槽假设如果我输入from time 作为10:00:00 和to time 作为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
【问题讨论】:
-
您想要两次之间的会议列表,还是您的问题建议的可用空闲时间?
-
另外,为什么不将开始/结束时间存储为时间戳或日期/时间?时间是 24 小时制还是 12 小时制?
-
@SloanThrasher。我需要两个时间之间预订的会议列表。如果有任何空位可用,那么我需要显示可用时间来预订
-
@SloanThrasher.if 这使得结果我可以。我是 mysql 的新手,所以这样做了。表中的任何帮助和更正都是可以接受的。谢谢
-
第一个很简单,你可以简单地使用 BETWEEN。第二个不是那么简单,而是一个单独的查询。