where ((start_time >= start_data and start_time <= end_data )
or (start_time >= start_data and end_time <= end_data )
or (end_time >= start_data and end_time <= end_data )
or (start_time <= start_data and end_time >= end_data ))
start_time 和start_time 是数据库字段
start_data和end_data 是前端传入的过滤条件
分为四种情况,画一下图就明显了。
条件的意思是,你传入的开始时间和结束时间,和数据库中的开始时间和结束时间是否有交集,只要有交集,条件就成立。
or的意思就是这4个条件中的任意一个为真都符合条件。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!