来自表的PHP数据,其中今天的日期在两个字段的范围内

时间:2017-07-29 16:47:22

标签: php mysql

我有一张名为orders的表格orderIDStartDateEndDate等。

我想知道今天的日期是否在StartDateEndDate之内。作为起点,我想打印适用的结果

这是我的代码,我无法使其正常工作。此外,CURDATE()对我不起作用。

 <?php
    //$originalDate = "2010-03-21";
    //$newDate = date("d-m-Y", strtotime($originalDate));

 include "dbh.php";

   $today = DATE("Y-m-d");
    // WHERE $today > StartDate OR $today < EndDate OR $today > SuspendEnd 
 OR $today < SuspendStart";

   //{
     //  echo $today;
   //}


    $sql= "SELECT * FROM orders 
    WHERE $today = StartDate
    ";

    $records = mysqli_query($conn,$sql);

    while($row = mysqli_fetch_assoc($records)){

        echo "<tr>";

        echo "<td>".$row['OrderID']."</td>";
        //echo "<td>".$row['StartDate']."</td>";

        echo "</tr>";

    }

 ?>

2 个答案:

答案 0 :(得分:0)

我没有运行mysql来测试它,但你可以尝试

select orderID from orders where (CURDATE() between StartDate and EndDate)

答案 1 :(得分:0)

您可以使用以下SQL查询来获取所有订单:

SELECT
    *
FROM
    orders
WHERE
    CURRENT_DATE() BETWEEN StartDate AND coalesce(EndDate, CURRENT_DATE) ;

它使用MySQL已经具有表示&#34;今天&#34;的功能。 (所以,你不需要从PHP传递今天的价值)。如果你的&#34; EndDate&#34;可以为NULL,并且您希望它表示&#34;永远不会结束&#34;,使用COALESCE到今天的日期将使之前的查询有效。

检查 dbfiddle here

中的所有内容

参考文献: