Mysql 从上午10点到下午4点获取记录

Mysql 从上午10点到下午4点获取记录,mysql,time,Mysql,Time,表:教师可用时间 ID | TeacherID | Day | startTime | endTime 1 | 1 | Mon | 09:00:00 | 12:00:00 2 | 1 | Tue | 09:00:00 | 16:00:00 3 | 1 | Wed | 09:00:00 | 14:00:00 4 | 1 | Thu | 09:00:00 |

表:教师可用时间

ID | TeacherID | Day    | startTime | endTime     
1  | 1         | Mon    | 09:00:00  | 12:00:00    
2  | 1         | Tue    | 09:00:00  | 16:00:00   
3  | 1         | Wed    | 09:00:00  | 14:00:00    
4  | 1         | Thu    | 09:00:00  | 12:00:00    
5  | 1         | Fri    | 09:00:00  | 16:00:00    
6  | 1         | Sat    | 09:00:00  | 14:00:00    
7  | 1         | Sun    | 11:00:00  | 16:00:00    
8  | 2         | Mon    | 11:00:00  | 12:00:00    
9  | 3         | Tue    | 12:00:00  | 13:00:00    
10 | 4         | Wed    | 10:00:00  | 16:00:00
我有一张教师可用的时间表,我想让所有上午10点有空的教师参加Sat

我试过这个问题

SELECT * FROM working_times WHERE startTime >= '10:00:00' AND endTime <= '16:00:00'

但在类似于此查询的情况下,如果我添加startTime>='10:00:00'和day='Mon',它将无法正常工作,因为教师1在10:00:00可用,并且与endTime相同。你的结构不好

ID | TeacherID | Day    | startTime | endTime     
1  | 1         | Mon    | 09:00:00  | 16:00:00    
2  | 1         | Tue    | 09:00:00  | 16:00:00   
3  | 1         | Wed    | 09:00:00  | 16:00:00    
4  | 1         | Thu    | 09:00:00  | 16:00:00    
5  | 1         | Fri    | 09:00:00  | 16:00:00    
6  | 1         | Sat    | 09:00:00  | 16:00:00    
7  | 1         | Sun    | 11:00:00  | 16:00:00    
8  | 2         | Mon    | 11:00:00  | 16:00:00    
9  | 3         | Tue    | 12:00:00  | 16:00:00    
10 | 4         | Wed    | 10:00:00  | 16:00:00
这是创建如下表的查询:

CREATE TABLE `working_times` (
 `ID` int(11) NOT NULL AUTO_INCREMENT,
 `teacherID` int(11) NOT NULL,
 `day` varchar(5) DEFAULT NULL,
 `startTime` time DEFAULT NULL,
 `endTine` time DEFAULT NULL,
 PRIMARY KEY (`ID`)
) 
现在您可以使用这个查询了

SELECT * FROM working_times WHERE startTime >= '10:00:00' AND endTime <= '16:00:00'

完全重新设计数据库将是最好的解决方案。记住,SQL表不像一张纸上的图表,因为文本存储时间使查询更加困难。MySQL为此提供了内置函数。数据库表也不是此查询中的电子表格如果我添加startTime>='10:00:00'和day='Mon',则它无法正常工作b/c教师1在10:00:00@BCMSame问题上可用,endTime@BCM