我正在尝试编写一个查询,它将在myql / php中查看我的表列date1和date2的今天的日期。这就是我所追求的:
'events'表:
查询:
但我不知道如何去做..任何帮助都会受到赞赏:)
编辑:
也许我不清楚..如果今天的日期='2012-01-18'如果今天的日期在date1和date2的日期范围之间我需要它来查找结果..所以date1可能是'2012-01-04 '和date2可能是'2012-01-21'..所以,如果今天的日期在这些日期之间或之间,则返回结果..
答案 0 :(得分:16)
SELECT * FROM events
WHERE date1<='2012-01-18'
AND date2>='2012-01-18'
答案 1 :(得分:2)
如果你提到比较今天的日期是在开始和结束日期之间,我认为你应该使用这个:
SELECT *
FROM table
WHERE '2014-08-20' >= start_date
AND '2014-08-20' <= end_date
希望这会有所帮助:)
答案 2 :(得分:1)
SELECT *
FROM events
WHERE date1 <= '2012-01-18'
AND date2 >= '2012-01-18';
这应该让你开始。如果您不想对日期进行硬编码,则可以使用DATE(NOW())
获取今天的日期。
答案 3 :(得分:1)
试试这个,
SELECT * FROM events
WHERE date1<='2012-01-19'
AND date2>='2012-01-18'
答案 4 :(得分:0)
虽然这个问题有很多答案,但我想就我遇到的情况作出回应。
我使用php来查询mysql数据库。
我首先要做的是转换mysql支持的日期格式中的日期,即yyyy-mm-dd
$date = new DateTime($date);
$date=date_format($date, 'Y-m-d');
在我使用的查询条款 BETWEEN
"'$date' BETWEEN start_date AND end_date"
这完全符合此处描述的情况。
答案 5 :(得分:-2)
styfle代码的修改版本
$date1 = '2010-01-01'; // example min
$date2 = '2015-01-01'; // example max
$sql = "SELECT * FROM events WHERE $date1 >= '2012-01-18' AND $date2 <= '2012-01-18';";
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) != 0) {
// This date is equal to or within the range specified
} else {
// The date was not within the range specified
}
然后您可以根据结果执行代码