如何根据 mysql 中的开始时间和结束时间获取记录
How to fetch records based on from and end time in mysql
我在从 table 中获取记录时遇到了一个问题。我的 table 看起来像下面这样:-
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。
我在从 table 中获取记录时遇到了一个问题。我的 table 看起来像下面这样:-
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。