【问题标题】:get records from 10am to 4pm从上午 10 点到下午 4 点获取记录
【发布时间】:2019-12-12 16:59:33
【问题描述】:

表:TeachersAvailableTime

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 点有空的教师。

我试过这个查询

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

但在这种情况下,如果我添加 startTime &gt;= '10:00:00' AND day='Mon',它会失败,因为教师 1 在 10:00:00 可用,并且与 endTime 有同样的问题

【问题讨论】:

标签: mysql time


【解决方案1】:

嗯。你的 mySql 结构不好。

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'

【讨论】:

  • 在这个查询中如果我添加 startTime >= '10:00:00' AND day='Mon' 那么它不能正常工作 b/c Teacher 1 10:00:00 可用@BCM
  • 与 endTime @BCM 相同的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多