【问题标题】:Date Range Query MySQL日期范围查询 MySQL
【发布时间】:2011-01-01 18:00:46
【问题描述】:

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

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

$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";

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

谢谢

【问题讨论】:

    标签: php datetime mysql date-range


    【解决方案1】:

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

    原始 SQL:

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

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

    【讨论】:

      【解决方案2】:

      在这两种情况下你都有 >=。

      【讨论】:

        【解决方案3】:

        您可以使用 mysql 函数 curdate() 获取日期为 2010-01-05,或 now() 获取完整的日期时间格式 2010-01-05 12:55:09。这取决于您是想查找今天开始还是现在开始的项目。

        假设您没有任何在开始之前结束的条目,您可以将查询重写为

        select * from news where start = curdate()
        

        仔细检查您的结束日期可能是个好主意。而且您似乎正在寻找已经开始但尚未结束的新闻文章列表,因此查询看起来像这样

        select * from news where start < now() and end > now()
        

        你甚至应该能够做到这一点,虽然我还没有测试过

        select * from news where now() between start and end
        

        您的里程可能会有所不同。

        --标记

        【讨论】:

          【解决方案4】:

          这对我有用。 select * from news where start between '$range1' and '$range2'

          【讨论】:

            【解决方案5】:

            感谢我最终使用的所有人:

            select * 
            from news 
            where start = curdate()
            

            我试过了

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

            它几乎可以正常工作。它不想显示在同一天同时开始和结束的新闻文章。

            -泰根

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-01-07
              • 2020-10-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-09-24
              相关资源
              最近更新 更多