我的数据库中有MySQL:
id | text | date_start | date_stop
1 | aa | 2011-12-17 10:45:00 | 2011-12-18 15:33:00
2 | aa | 2011-12-18 19:11:44 | 2011-12-20 10:10:19
3 | aa | 2011-12-21 15:14:00 | 2011-12-23 11:21:00
我想检查示例日期是否在数据库中。 例如我给予:
date_start: 2011-12-17 11:11:11 and date_stop 2011-12-18 16:11:11
这应该返回false。
date_start: 2011-12-20 11:11:11 and date_stop 2011-12-21 11:11:11
这应该返回true。
我该怎么做?在SQL中哪个查询应该是这个?
答案 0 :(得分:3)
WHERE start_date BETWEEN $start AND $end
OR end_date BETWEEN $start AND $end
OR ($start < start_date AND $end > end_date)
如果你有结果,那就是假,否则为真。
答案 1 :(得分:1)
试试这个:
SELECT COUNT(*)>0 FROM tbl WHERE date_start BETWEEN '2011-12-20 11:11:11' AND '2011-12-21 11:11:11'
我认为date_start
应该在给定日期之间。
答案 2 :(得分:-1)
不确定这是不是你的意思,但是:
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$result = mysql_query("SELECT * FROM table WHERE date_start = '2011-12-17 11:11:11' AND date_stop = '2011-12-18 16:11:11'", $link);
$amount = mysql_num_rows($result);
if($amount > 0)
{
return true;
}
else
{
return false;
}