php - MySql使用html日期输入选择带有日期时间的日期范围

标签 php mysql date datetime

我正在使用 MySqli 作为 MySql 服务器。我正在设置一个表单,用户可以在其中使用 html 表单中的日期输入类型输入日期:

<div class="ElHolder">
    <form action="productionOutput.php" method="get">
        <input type="date" name="packHistDate" required>
        <input type="submit">
    </form>
</div>

然后我使用 php 来获取输入的日期,并尝试在我的 sql 查询中使用它。我之前在代码中设置了 $packHistDate = $_GET["packHistDate"]

        $sql = "SELECT 
                    PRODUCTS.ProductId,
                    PRODUCTS.Name,
                    DATE(PACKING_QUEUE.DatePackFinished) AS \"DateFinished\",
                    PACKING_QUEUE.Packets,
                    PACKING_QUEUE.SizeCode,
                    PACKING_QUEUE.RunSize,
                    BATCHES.BatchId
                FROM PACKING_QUEUE
                    JOIN BATCHES ON BATCHES.BatchId = PACKING_QUEUE.BatchId
                    JOIN PRODUCTS ON PRODUCTS.ProductId = BATCHES.ProductId
                WHERE PACKING_QUEUE.Status = 6 AND PACKING_QUEUE.DatePackFinished BETWEEN ".$packHistDate." AND NOW()
                ORDER BY PACKING_QUEUE.DatePackFinished DESC";
        $result = $conn->query($sql);

        if (!$result) {
            printf("Errormessage: %s\n", $conn->error);
        }

PACKING_QUEUE.DatePackFinished 是 DATETIME,我认为这就是错误产生的地方。但是,我没有收到代码执行的任何错误消息,但返回了所有日期。

我尝试使用 DATE() 将它们全部转换为日期,但仍然不起作用。

非常感谢任何帮助

更新:在 ".$datePackFinished." 周围添加单引号,就像 '".$datePackFinished."' 修复了它!

最佳答案

我只是更改日期部分。只需更改日期部分,如

BETWEEN NOW() AND ".$packHistDate."

对我来说它有效。

或者您可以通过添加额外的单引号来实现

BETWEEN NOW() AND '".$packHistDate."'

关于php - MySql使用html日期输入选择带有日期时间的日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39099421/

相关文章:

PHP - 从数据库中获取某个单词不在特定文本中的行

php - 使用 jQuery 使用 onClick 事件处理程序访问 html 表中的数据

php - 如何在 PHP 中缩写 MySQL 查询?

java - 字符串中的 OffsetDateTime Z

ruby-on-rails - 为什么 Date.today - 6.months + 6.months != Date.today?

PHP 使用对象而不是数组

php - 在 codeigniter 中有什么方法可以检查 ( $this->db->group_start(); ) 即组是否已经启动。或任何技巧

MYSQL:通过连接表根据排名选择行

mysql - 如果已存在具有相同值的行,则增加一列

asp.net - 在日历上设置最小和最大日期?