Mysql:从特定的日期和时间获取数据

Mysql:从特定的日期和时间获取数据,mysql,Mysql,我每天有三张桌子。表中的数据如下所示, Daypart表有4个条目 id | start_time | end_time 1 | 09:00:01 | 12:00:00 2 | 12:00:01 | 18:00:00 3 | 18:00:01 | 23:59:59 4 | 00:00:01 | 09:00:00 Schedule table id | start_date | end_date 1 | 10-Sept-2013 | 12-Sept-2013

我每天有三张桌子。表中的数据如下所示,
Daypart表有4个条目

id | start_time | end_time  
 1 | 09:00:01 | 12:00:00  
 2 | 12:00:01 | 18:00:00  
 3 | 18:00:01 | 23:59:59  
 4 | 00:00:01 | 09:00:00


Schedule table  
id | start_date | end_date  
 1 | 10-Sept-2013 | 12-Sept-2013  
 2 | 10-Sept-2013 | 15-Sept-2013   


schedule_daypart  
id | schedule_id | daypart_id  
1 | 1 | 1  
2 | 1 | 2  
3 | 1 | 3  
4 | 1 | 4  
5 | 2 | 1  
6 | 2 | 2  
7 | 2 | 3
现在我想写一个存储过程,它将接受日期和时间参数,并给出计划id和daypart id。例如,如果我提供的日期为11-Sett-2013,时间为13:30:00,那么输出将是

schedule_id | daypart_id  
 1 | 2  
 1 | 3  
 1 | 4  
 2 | 2  
 2 | 3  
试试这个:

SELECT
    JT.schedule_id, JT.daypart_id
FROM schedule_daypart JT
INNER JOIN daypart DP ON JT.daypart_id = DP.id
INNER JOIN Schedule S ON JT.schedule_id = S.id
WHERE S.start_date <= STR_TO_DATE('2013, 11 09', '%Y, %d %m') AND S.end_date >= STR_TO_DATE('2013, 11 09', '%Y, %d %m') AND DP.start_time >= STR_TO_DATE('13:30:00','%h:%i:%s') AND DP.end_time <= STR_TO_DATE('13:30:00','%h:%i:%s')

你试过吗。。?drream永远不会实现,除非您尝试…尝试加入表并比较相关值^^^^我尝试过,但它需要3个参数date、time和daypart\u id。但我不希望daypart\u id作为参数提供。如果我提供daypart_id,则时间没有意义。查询不起作用。daypart表没有start_date和end_date列,如果我更改了查询,没有对查询进行更新,这是一个小错误,我认为您应该对此做出一些努力,这是一个很容易解决的错误。nyways更新了它,请查看nw.@Vishal如果您有开始和结束日期的日期数据类型,以及开始和结束时间的时间数据类型,这应该可以使用。@AbhishekJain如果我只运行select STR_TO_date('13:30:00','a%h:%i:%s'),它会给出空输出。
STR_TO_DATE('13:30:00','%h:%i:%s')