需要有关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 |
---------------------------------------------------------
我希望这篇文章对其他人也有用。开始和结束列都是日期时间数据类型。基本上我要做的查询是检查活动冲突。
需要帮助。提前谢谢你。
答案 0 :(得分:1)
基本上,您需要查看一条记录的开始日期或结束日期是否在另一行的开始日期和结束日期之内。我用INNER JOIN
做了。您也可以使用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))