如何使用mysql检查日期是否在date1和date2之间?

如何使用mysql检查日期是否在date1和date2之间?,mysql,date-range,Mysql,Date Range,我正在尝试编写一个查询,根据mysql/php中的表列date1和date2检查今天的日期。。这就是我想要的: “事件”表: 日期1=开始日期(XXXX-XX-XX) 日期2=结束日期(XXXX-XX-XX) 查询: 从2012-01-18日期介于日期1和日期2之间(或等于日期1和日期2)的事件中选择* 但我不知道该怎么办。。任何帮助都将不胜感激:) 编辑: 也许我不清楚。。如果todays date='2012-01-18',如果今天的日期介于日期1和日期2之间,我需要它来查找结果。。

我正在尝试编写一个查询,根据mysql/php中的表列date1和date2检查今天的日期。。这就是我想要的:

“事件”表:

  • 日期1=开始日期(XXXX-XX-XX)
  • 日期2=结束日期(XXXX-XX-XX)
查询:

  • 从2012-01-18日期介于日期1和日期2之间(或等于日期1和日期2)的事件中选择*
但我不知道该怎么办。。任何帮助都将不胜感激:)

编辑:

也许我不清楚。。如果todays date='2012-01-18',如果今天的日期介于日期1和日期2之间,我需要它来查找结果。。因此,日期1可能是“2012-01-04”,日期2可能是“2012-01-21”。。因此,如果今天的日期介于这些日期之间或在这些日期上,将返回一个结果。

SELECT*FROM events
SELECT * FROM events 
  WHERE date1<='2012-01-18'
  AND date2>='2012-01-18'
其中日期1='2012-01-18'
选择*
从事件中
其中date1='2012-01-18';
这应该让你开始。如果不想硬编码日期,可以使用
DATE(NOW())
获取今天的日期。

试试这个

SELECT * FROM events  
  WHERE date1<='2012-01-19'  
  AND date2>='2012-01-18'  
从事件中选择*
其中日期1='2012-01-18'

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
}
$date1='2010-01-01';//示例min
$date2='2015-01-01';//示例max

$sql=“SELECT*FROM events,其中$date1>='2012-01-18'和$date2如果您指的是比较今天的日期介于开始日期和结束日期之间,我认为您应该使用以下内容:

SELECT *
FROM table
WHERE '2014-08-20' >= start_date
AND '2014-08-20' <= end_date
选择*
从桌子上
其中“2014-08-20”>=开始日期

和“2014-08-20”虽然这个问题有很多答案,但我想就我面临的同样情况给出我的回答

我正在使用php查询mysql数据库

首先,我要做的是将日期转换为mysql支持的日期格式,即YY-mm-dd

$date = new DateTime($date);
$date=date_format($date, 'Y-m-d');
在查询的where子句中,我使用介于

"'$date' BETWEEN start_date AND end_date"

这在这里描述的情况下非常有效。

我需要它显示2012-01-18是否在date1和date2的范围内(如果有意义的话)?这正是此查询所做的:它选择所有行,其中2012-01-18在rowhmm中定义的范围内。这是我的查询(将日期更改为数据库中的事件之间)从date1>='2012-04-01'和date2 nevermind的事件中选择*我的大于/小于的方式是错误的。你的比较是错误的:你有“date1>='2012-04-01'和date2这篇文章没有任何意义sense@Tim此注释没有任何意义。此查询的计算结果将为“从事件中选择*,其中'2010-01-01'='2012-01-18';“这将返回“events”表中的所有条目,而不是查询date1和date2大于$date的事件。谢谢此查询没有任何意义。
"'$date' BETWEEN start_date AND end_date"