MySQL检查是否采用了日期间隔

MySQL检查是否采用了日期间隔,mysql,Mysql,我有一个数据库表,其中有许多行包含格式为“YYYY-mm-dd”的开始日期和结束日期 不要让一段时间被重叠,或者围绕着一段时间 Row 1: start_date 2020-07-01 , end date 2020-15-07 Row 2: start_date 2020-06-14 , end date 2020-06-29 如果我使用新的开始日期2020-06-13和结束日期2020-06-30进行测试,则应返回第2行 如果我使用新的开始日期2020-06-16和结束日期2020-06

我有一个数据库表,其中有许多行包含格式为“YYYY-mm-dd”的开始日期和结束日期

不要让一段时间被重叠,或者围绕着一段时间

Row 1: start_date 2020-07-01 , end date 2020-15-07

Row 2: start_date 2020-06-14 , end date 2020-06-29
如果我使用新的开始日期2020-06-13和结束日期2020-06-30进行测试,则应返回第2行

如果我使用新的开始日期2020-06-16和结束日期2020-06-30进行测试,则应返回第2行

如果我使用2020-06-27和结束日期2020-07-02进行测试,则应返回第1行和第2行


这是怎么造成的,我无法理解。

这只是重叠范围问题的一个变体。你可以考虑:

SELECT *
FROM yourTable
WHERE end_date >= new_start AND start_date <= new_end;
选择*
从你的桌子上

其中结束日期>=新开始日期和开始日期='2020-06-13'和开始日期再次检查数据。什么是2020-15-07?就是这样,我几乎已经试过了所有的方法,非常感谢。
SELECT *
FROM yourTable
WHERE end_date >= '2020-06-13' AND start_date <= '2020-06-30';