日期范围查询MySQL

Teg*_*der 2 php mysql datetime 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";
Run Code Online (Sandbox Code Playgroud)

问题是查询仍在拉开结果,其中开始日期大于今天.那么我修改我的查询看起来像这样:

 $q = "SELECT * FROM news WHERE `end` >= '" .  $todays_date . "' AND `start` >= '" .  $todays_date . "' AND `start` <='" . $todays_date . "' ORDER BY id DESC";
Run Code Online (Sandbox Code Playgroud)

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

谢谢

mic*_*man 5

您可以在MySQL和BETWEEN运算符中使用now timedate函数.

原始SQL:

SELECT * FROM news
WHERE NOW() BETWEEN start AND end;
Run Code Online (Sandbox Code Playgroud)

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