如何使用mysql检查日期是否在date1和date2之间?
我正在尝试编写一个查询,根据mysql/php中的表列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之间,我需要它来查找结果。。
- 日期1=开始日期(XXXX-XX-XX)
- 日期2=结束日期(XXXX-XX-XX)
- 从2012-01-18日期介于日期1和日期2之间(或等于日期1和日期2)的事件中选择*
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"