如何在MySQL中检索两个日期之间的所有行


How to retrieve all rows between two dates in MySQL?

我有一个问题,希望得到答案。

现在我想从数据库中检索一些基于特定日期的数据。

所以我在数据库中有一个表,叫做flights。这个表存储了一些航空航班的数据。

我写了一个简单的代码来检索一段时间内的航班:说我想搭乘2015年11月24日至2015年12月3日的航班。

但问题是,当进入新的月份时,程序就会崩溃。我使用了for循环,所以它永远都在检索数据。

如何在php中增加日期?

这是我的代码:

<?php
for($i = $date1; $i <= $date2; $i++)
{
$sql3 = "select * from flights where flight_date = '$i'";
$query3 = mysql_query($sql3);
$numrows3 = mysql_num_rows($query3);
if($numrows3 > 0)
{
 // retrieve flights.
}
} // end of for loop
?>

让MySQL获取所需的所有行比发出多个查询(例如)效率高得多

select * from flights where flight_date between '2015-11-24' and '2015-12-03'

请确保查询中的日期格式正确(yyyy-mm-dd)。另外,请避免使用mysql函数,它们将会消失!