问题描述
id market_id opening_time closing_time day p_slot
1 1 06:30:00 09:30:00 Friday 1
2 1 09:30:00 13:30:00 Friday 0
3 1 17:30:00 19:30:00 Friday 0
4 1 19:30:00 23:30:00 Friday 0
我想根据 opening_time
和关闭时间过滤数据。我试过下面的查询
select *
from `timing`
where market_id = 1
and day = 'Friday'
and (opening_time <= '13:45:00' or closing_time <= '15:30:00')
and (opening_time <= '15:30:00' or closing_time <= '15:30:00')
id market_id opening_time closing_time day p_slot
1 1 06:30 09:30 Friday 1
2 1 09:30 13:30 Friday 0
select *
from `timing`
where market_id = 1
and day = 'Friday'
and (opening_time <= '09:15:00' or closing_time <= '12:30:00')
and (opening_time <= '12:30:00' or closing_time <= '12:30:00')
谁能帮我解决这个问题?我希望结果存在于 opening_time
和 closing_time
范围内。
注意:- 我希望用户搜索时间为:- 9:15:00 和结束时间 12:30:00 我只想获取第一行和第二行,如果用户搜索时间为 13:45:00 和 15 :30:00 在这种情况下,我不想过滤任何行
解决方法
您的情况应该是:
closing_time >= from_time and opening_time <= end_time:
喜欢:
select *
from `timing`
where market_id = 1
and day = 'Friday'
and closing_time >= '13:45:00' and opening_time <= '15:30:00';
参见demo。