我有一张名为orders
的表格orderID
,StartDate
,EndDate
等。
我想知道今天的日期是否在StartDate
和EndDate
之内。作为起点,我想打印适用的结果
这是我的代码,我无法使其正常工作。此外,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>";
}
?>
答案 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
中的所有内容参考文献: