我的数据库表中有以下数据
id time time_slots
1 time1 09:00-10:30,12:15-14:00,16:30-19:30
2 time2 14:00-15:15,18:30-19:30
3 time3 08:30-10:00,13:00-15:00,15:30-18:00
4 time4 13:00-15:00
5 time5 15:00-16:00,17:30-18:30现在,如果当前时间是13:30,那么我需要上面表中的3条记录(id为1,3,4)。最终结果将是:
id
1
3
4请帮助我以最好的方式找到解决方案。你的帮助对我很有帮助。提前谢谢。
发布于 2019-06-11 13:42:42
我认为你可以优化你的表结构,否则当表中的记录数量很大时,获取数据会花费很多时间。
试着实现下面的结构,它会很简单。
Time_table
id time
1 time1
2 time2
3 time3
4 time4
5 time5Time_slot_table
id time_table_id(fk) start_time end_time
1 1 09::00 10:30
2 1 12:15 14:00
3 1 16:30 19:30
4 2 14:15 15:15
5 2 18:30 19:30现在运行下面的查询来获取范围内的数据
SELECT time
FROM Time_table
JOIN Time_slot_table ON Time_slot_table.time_table_id = Time_table.id
WHERE current_time BETWEEN Time_slot_table.start_time AND Time_slot_table.end_timehttps://stackoverflow.com/questions/56536995
复制相似问题