如何将当前日期放入我的SQL datediff

时间:2018-12-08 04:00:34

标签: php jquery mysql

这是我在下面尝试过的查询。  $ sql =“从销售中选择ID,到期日,datediff(date('Y / m / d'),日期)

我正在写一个销售程序以识别应付款。  如果到期付款超过7错误,则显示付款,直到我到目前为止尝试为止,我在完整的编码下方附上。当我尝试以下代码错误输出时显示注意:未定义索引:datediff(pay_date,date)

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
                       $today =  date("Y/m/d");
                        $sql = "SELECT id,due, datediff(date('Y/m/d'), date)  FROM sales where due != '0' ";
                        $result = $conn->query($sql);
                        if ($result->num_rows > 0) {

                            while ($row = $result->fetch_assoc())
                            {
                                $id = $row['id'];
                                $paydate =  $row ["datediff(pay_date, date)"] . " " .  "Days" . "</br>";
                                if($paydate >= 7)
                                {
                                    $status =  "Payment pending";
                                    $color = "#47f50b";
                                }
                                else if($paydate >= 3)
                                {
                                    $status = "Payment pending please settle down the amount";
                                    $color = "yellow";
                                }

                                else if($paydate >= 1)
                                {
                                    $status = "kindly pay the payment";
                                    $color = "#00a8ff";

                                }
                                elseif($paydate == 0)
                                {
                                    $status = "Disable your Order";
                                    $color = "red";
                                }

                                ?>

2 个答案:

答案 0 :(得分:1)

假设您的到期日列称为date,则您的查询应为

$sql = "SELECT id, due, DATEDIFF(date, CURDATE()) AS paydate FROM sales WHERE due != '0' ";

请注意,我们使用CURDATE()来获取MySQL中的当前日期,并且我已经将DATEDIFF的结果别名为paydate

您还有一个要设置的问题

$paydate =  $row ["datediff(pay_date, date)"]

但是,在查询中,您的表达式与datediff(pay_date, date)不匹配。这就是为什么最好像我上面那样使用别名,然后您可以将该行更改为简单

$paydate = $row['paydate'];

如果您在查询中更改了公式,则这部分代码仍然有效。

最后,您将" Days"附加到$paydate的值上。这将与数字进行比较,例如if($paydate >= 7)中存在问题,最好不使用" Days",直到输出$paydate的值。

答案 1 :(得分:0)

尝试在SELECT中使用datediff(pay_date, date) as datedif,然后使用$row["datedif"]

打印