【发布时间】:2021-06-17 07:03:38
【问题描述】:
目前对于我的系统,我正在创建一个 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 ,查询完全忽略了月份和年份,当我将我的列更改为长文本时,当我更改为日期/时间时,就会出现错误数据类型不匹配。
请有人帮帮我。
【问题讨论】:
-
您的数据库将采用 YYYY-MM-DD 格式。因此您需要重新格式化日期以使其正常工作。
-
@Samir 这适用于 SQL 但不是 Access 的情况,我选择了短日期,即 dd/mm/yy
-
格式设置没有任何意义。 Access 将日期存储为双数字,默认情况下将其转换为 mm/dd/yyyy,除非您的系统和数据库设置为 dd/mm/yyyy 的国际日期样式。字段的格式设置不会改变实际值。我很少在表格中进行格式化,因为它会造成混乱。
-
@June7 你能指导我解决这个问题吗?如何正确解决此错误?是否可以比较我设置为字符串的日期?
-
只有在字符数相同的情况下才能将日期与字符串进行比较,因此需要占位符零:09/01/2021。因为这是 alpha 排序,一次比较一个字符。我不使用 PHP 编程,也不使用国际日期样式,所以真的不知道如何最好地解决。 Access 中的查询要求日期用 # 个字符分隔,文本用撇号分隔,数字没有分隔符。
标签: php jquery ms-access jquery-ui-datepicker