{"attachments":[],"attr":{},"bold":false,"channelId":445,"checked":true,"collectsCount":1,"commentsCount":0,"commentsDay":0,"contentCount":{"collects":1,"collectsDay":0,"collectsMonth":0,"collectsWeek":0,"comments":0,"commentsDay":0,"commentsMonth":0,"commentsWeek":0,"downloads":0,"downloadsDay":0,"downloadsMonth":0,"downloadsWeek":0,"downs":0,"id":101506,"likes":0,"likesDay":0,"likesMonth":0,"likesWeek":0,"ups":0,"upsDay":0,"upsMonth":0,"upsWeek":0,"views":1035,"viewsDay":0,"viewsMonth":1,"viewsWeek":0},"contentExt":{"bold":false,"editDate":1598184250000,"id":101506,"releaseDate":1598184250000,"stitle":"mysql 查询两个时间段是否有交集的情况","title":"mysql 查询两个时间段是否有交集的情况","tplMobileContent":""},"contentImgWhole":"mysql 查询两个时间段是否有交集的情况","contentTxt":{"id":101506,"txt":"
数据库的字段 start_time, end_time,输入的字段 a,b
第一种
SELECT * FROM test_table\r\nWHERE\r\n (start_time >= a AND start_time <= b)\r\n OR (start_time <= a AND end_time >= b)\r\n OR (end_time >= a AND end_time <= b)
第二种
SELECT * FROM test_table\r\nWHERE\r\n NOT (\r\n (end_time < a\r\n OR (start_time > b)\r\n )
两种结果相同
数据库的字段 start_time, end_time,输入的字段 a,b
第一种
SELECT * FROM test_table\r\nWHERE\r\n (start_time >= a AND start_time <= b)\r\n OR (start_time <= a AND end_time >= b)\r\n OR (end_time >= a AND end_time <= b)
第二种
SELECT * FROM test_table\r\nWHERE\r\n NOT (\r\n (end_time < a\r\n OR (start_time > b)\r\n )
两种结果相同