php - 日期范围查询 MySQL

标签 php datetime mysql date-range

我需要一个查询来选择两个日期之间的数据,以今天的日期作为引用。

数据库有一个“开始”的日期时间字段和一个“结束”的日期时间字段。

$todays_date = date("Y-m-d H:i:s");

$q = "SELECT * FROM news WHERE `end` >= '" .  $todays_date . "' AND `start` >= '" .  $todays_date . "' ORDER BY id DESC";

问题是查询仍在提取开始日期大于今天的结果。然后我将查询修改为如下所示:

 $q = "SELECT * FROM news WHERE `end` >= '" .  $todays_date . "' AND `start` >= '" .  $todays_date . "' AND `start` <='" . $todays_date . "' ORDER BY id DESC";

这是使用今天日期作为限制器的两个日期时间字段之间选择数据的正确方法吗?

谢谢

最佳答案

您可以使用 MySQL 中的 now timedate 函数和 BETWEEN运营商。

原始 SQL:

SELECT * FROM news
WHERE NOW() BETWEEN start AND end;

注意:请注意提供 MySQL 资源的服务器使用的默认时区,它会影响 NOW() 函数。

关于php - 日期范围查询 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2007929/

相关文章:

Python 查找一年中的剩余天数和一年中的天数

javascript - 无法从asp.net页面中的jquery日期时间选择器捕获日期时间值(C#)

javascript - 多个 JavaScript 倒计时日期?

mysql - MySQL golang 驱动程序中的无缓冲结果集

php - 如何解决 Paypal 错误 - 您用于进入 PayPal 系统的链接无效。请查看链接并重试?

svn - 从实际项目中保存库的最佳做法是什么

php - 如何使用php cURL发送Request Payload?

PHP $_POST 为空——不适用于使用 MAMP 的本地服务器

php - 未从 SELECT 查询中获得预期结果

mysql - 包含 sql 列表中的字符串