我需要进行一个查询,检查用户想要计划的开始时间和结束时间是否尚未计划
我目前有这样的疑问:
select *
from planned_activities
where
user_id = 161
and
'2022-01-11 17:36:00' between start_time and end_time
or '2022-01-11 18:36:00' between start_time and end_time
or ('2022-01-11 17:36:00' <= start_time and '2022-01-13 18:36:00' >= end_time);
我发现这很难解释,但如果计划不可行,我基本上想返回其他计划活动的数据。
1条答案
按热度按时间isr3a4wc1#
该查询检查当前用户是否存在与输入的时间范围重叠的行。返回一行一列
row_exists
,可能的值为1(发现重叠)或0(输入的时间范围是自由的)。如果相邻的时间范围也不允许,则使用弱比较运算符。