繁体   English   中英

在MySQL中检查范围日期

[英]Check range date in MySQL

我的数据库中有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中应该针对哪个查询?

WHERE start_date BETWEEN $start AND $end
OR end_date BETWEEN $start AND $end
OR ($start < start_date AND $end > end_date)

如果有结果,则为假,否则为真。

尝试这个:

SELECT COUNT(*)>0 FROM tbl WHERE date_start BETWEEN '2011-12-20 11:11:11' AND '2011-12-21 11:11:11'

我想date_start应该在给定的日期之间。

不知道这是否是您的意思,但是:

$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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM