首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mysql-选择超过特定时间范围的记录

mysql-选择超过特定时间范围的记录
EN

Stack Overflow用户
提问于 2012-04-23 15:31:53
回答 1查看 240关注 0票数 0

我有一个医生时间表页面,医生可以配置他/她的工作时间(开始时间和结束时间)从星期一到星期五。

通过使用访问页面,用户只能在医生每天预定的时间内安排他们的预约。

我使用访问表用于用户约会,使用physician_schedules表来配置医生的工作时间。

访问表条目

代码语言:javascript
运行
复制
id  visit_date  scheduled_intime    scheduled_outtime   physician_id
1   2012-04-23  09:15:00        09:30:00        1
2   2012-04-23  09:31:00        10:00:00        1
3   2012-04-24  10:00:00        10:15:00        1
4   2012-04-25  11:00:00        11:15:00        1
5   2012-04-26  15:15:00        15:30:00        1
6   2012-04-27  16:00:00        16:30:00        1

physician_schedules表条目

代码语言:javascript
运行
复制
id  start_time  end_time    day_of_week physician_id
1   09:00:00    18:00:00    monday      1
2   10:00:00    18:00:00    tuesday     1
3   11:00:00    17:00:00    wednesday   1
4   15:00:00    18:00:00    thursday    1
5   16:00:00    20:00:00    friday      1

注意事项每个医生应该每天只有一个条目(总共5个条目)。

问题当医生改变他/她的时间表时,我想找出在那一天超过医生时间表的所有现有的就诊情况。

示例

( 1)如果医生改变周三的工作时间,我想找到id 4

代码语言:javascript
运行
复制
start_time: 12:00:00 
end_time: 17:00:00

2)如果医生随工作时间的变化,我想找到id 4,5

星期三:

代码语言:javascript
运行
复制
start_time: 12:00:00 
end_time: 17:00:00

星期四

代码语言:javascript
运行
复制
start_time: 15:30:00
end_time: 18:00:00
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-23 16:51:03

代码语言:javascript
运行
复制
SELECT visits.id FROM visits INNER JOIN physician_schedules
  ON visits.physician_id = physician_schedules.id
  WHERE
        UPPER(day_of_week) = UPPER(DAYNAME(visit_date))
    AND (scheduled_intime < start_time OR scheduled_outtime > end_time)

这将返回所有医生所有安排不良访问的所有ids。增加一个额外的地方,以获得他们只是一个特定的医生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10283605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档