Mysql 检查开始日期和结束日期时间之间的日期冲突(db列具有开始日期和结束日期)

Mysql 检查开始日期和结束日期时间之间的日期冲突(db列具有开始日期和结束日期),mysql,sql,Mysql,Sql,需要有关sql(mysql查询)的帮助以检查所选的“startdate”和“enddate”是否在该范围内没有任何记录 下面是我的桌子: --------------------------------------------------------- | id | start | end |activity| --------------------------------------------------------- | 1 |2

需要有关sql(mysql查询)的帮助以检查所选的“startdate”和“enddate”是否在该范围内没有任何记录

下面是我的桌子:

---------------------------------------------------------
| id |    start           |     end            |activity|
---------------------------------------------------------
| 1  |2011-10-30 13:00:00 |2011-10-30 14:00:00 | study  |
| 2  |2011-10-30 15:00:00 |2011-10-30 16:00:00 | tennis |
| 3  |2011-10-30 17:00:00 |2011-10-30 18:00:00 | golf   |
| 4  |2011-10-30 18:00:00 |2011-10-30 19:00:00 | gym    |
| 5  |2011-10-30 20:00:00 |2011-10-30 21:00:00 | study  |
---------------------------------------------------------
我希望这篇文章也能对其他人有用。开始列和结束列都是datetime数据类型。基本上,我试图做的查询是检查活动冲突


需要帮助。提前谢谢。

基本上,您需要查看一条记录的开始日期或结束日期是否在另一行的开始日期和结束日期内。我是通过一个
内部连接完成的。您也可以使用
WHERE'
子句来代替

Select [your fields]
From table t1
           Inner join table t2
           On t1.id <> t2.id
               And (( t1.start > t2.start
                    And t1.start < t2.end)
                     Or
                    (t1.end > t2.start
                    And t1.end < t2.end))
选择[您的字段]
来自表t1
内部联接表t2
关于t1.id t2.id
和((t1.start>t2.start
和t1.开始t2.start
和t1.end
基本上,您需要查看一条记录的开始日期或结束日期是否在另一行的开始日期和结束日期内。我是通过一个
内部连接完成的。您也可以使用
WHERE'
子句来代替

Select [your fields]
From table t1
           Inner join table t2
           On t1.id <> t2.id
               And (( t1.start > t2.start
                    And t1.start < t2.end)
                     Or
                    (t1.end > t2.start
                    And t1.end < t2.end))
选择[您的字段]
来自表t1
内部联接表t2
关于t1.id t2.id
和((t1.start>t2.start
和t1.开始t2.start
和t1.end