通过使用从 JQuery DatePicker 中选择的 WHERE Date BETWEEN 开始日期和结束日期比较日期,从 Access 中获取数据

问题描述

目前对于我的系统,我正在创建一个 PHP 图表系统,用户可以在其中从两个日期选择器中选择所需的日期,即开始日期和结束日期。

一旦用户提交日期,日期将使用 $_POST 作为 $From 和 $To 存储到变量中。我想拿这两个日期可以从我的Access数据库中取数据。

下面是我当前的代码

PHP

<?PHP 
    if(isset($_POST['Search'])){
        $From=$_POST['From'];
        $To=$_POST['to']; 
        $conn = odbc_connect("Ingot_Daily_Report","","");
        $query = "SELECT * FROM Output_Data WHERE data_Day BETWEEN '$From' AND '$To'";
        $sql = odbc_exec($conn,$query);
        while($row=odbc_fetch_array($sql)){
    ?>  
        ["<?PHP echo $row['data_Day']; ?>",<?PHP echo $row['Crystal_Out']; ?>,<?PHP echo $row['Aggressive_Daily_Target']; ?>,<?PHP echo $row['KPI_Target']; ?>,<?PHP echo $row['AveragetoDate']; ?>],<?PHP   
    }
    }
    ?>

我的 DatePicker 代码

<script>
$(document).ready(function(){
    $.datepicker.setDefaults({
        dateFormat: 'm/d/yy'
    });
    $(function(){
        $("#From").datepicker({
             
        onClose: function (selectedDate) {
             $("#To").datepicker("option","minDate",selectedDate);

        }

        });
        $("#To").datepicker({
            
                onClose: function (selectedDate) {
            $("#From").datepicker("option","maxDate",selectedDate);

                }
        });
    });
               
});
</script>

我的访问日期列是日期/时间类型,但是当我运行上面的代码时,会出现一个显示数据类型不匹配的错误。我试图将列设置为长文本,但是显示的数据不是我想要的,因为例如我选择了日期 15/6/2021 到 17/6/2021 数据提取将是日期在 15- 之间的所有数据17 ,查询完全忽略了月份和年份,当我将列更改为长文本时,当我更改为日期/时间时,出现错误数据类型不匹配。

有人请帮帮我。

解决方法

尝试使用 octothorpes,Access SQL 的日期/时间分隔符:

$query = "SELECT * FROM Output_Data WHERE data_Day BETWEEN #$From# AND #$To#";