【问题标题】:How to retrieve all rows between two dates in MySQL? [duplicate]如何在 MySQL 中检索两个日期之间的所有行? [复制]
【发布时间】:2015-11-27 20:23:11
【问题描述】:

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

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

所以我在数据库中有一个名为航班的表。该表存储了一些航空航班数据。

我编写了一个简单的代码来检索间隔内的航班: 假设我想获得从 24/11/2015 到 3/12/2015 的航班。

但问题是当得到新的月份时,程序崩溃了。我使用了一个 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'
  • 然后您也可以摆脱讨厌的for 循环。 ++2 用于这种方法。
  • 当你这样做时服务器不爱你
  • @PaulDixon 非常感谢兄弟,它有效。请写在答案中以接受它作为我的问题的解决方案:)

标签: php mysql


【解决方案1】:

让 MySQL 获取您需要的所有行而不是发出多个查询会更有效,例如

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

请务必正确格式化查询中的日期 (yyyy-mm-dd)。另外,请避免使用 mysql_ 函数,they will be disappearing

【讨论】:

  • 非常感谢,很高兴帮助我 :)... 请为问题投票,因此无需投反对票,因为这不是一个模棱两可的问题。
猜你喜欢
  • 2013-09-03
  • 2021-11-01
  • 2021-05-25
  • 1970-01-01
  • 2013-11-08
  • 2017-07-07
  • 2021-07-06
  • 2013-07-05
  • 1970-01-01
相关资源
最近更新 更多