使用 php 在两个日期之间选择 ms 访问

Posted

技术标签:

【中文标题】使用 php 在两个日期之间选择 ms 访问【英文标题】:select between two dates ms access using php 【发布时间】:2016-01-21 06:40:07 【问题描述】:

我想使用 php 从 ms 访问中选择数据 这是我的代码:

$dbdir = "D:\payroll2\ATT2000.MDB";
$conn = odbc_connect("DRIVER=Microsoft Access Driver (*.mdb);DBQ=$dbdir", 
  "administrator", 
  "");
$b = 4104;
$jo = date('n/j/Y h:i:s A',strtotime('2016-01-21 00:00:01'));
$ji = date('n/j/Y h:i:s A',strtotime('2016-01-21 23:59:59'));

$sql = "SELECT TOP 20 * from CHECKINOUT inner join USERINFO on CHECKINOUT.USERID = USERINFO.USERID where USERINFO.SSN = '$b'";
$rs = odbc_exec($conn,$sql);
odbc_fetch_row($rs, 0); 

while (odbc_fetch_row($rs))  

echo odbc_result($rs,"CHECKTIME"); print('<br>');

 
 odbc_close($conn);

它工作正常,但我想选择两个日期之间的数据 所以我将AND CHECKINOUT.CHECKTIME between '$jo' and '$ji' 添加到这样的查询中:

$sql = "SELECT TOP 20 * from CHECKINOUT inner join USERINFO on CHECKINOUT.USERID = USERINFO.USERID where USERINFO.SSN = '$b' AND CHECKINOUT.CHECKTIME between '$jo' and '$ji'";

我不知道为什么它不起作用, 我确定数据存在,并且我的日期格式与 ms 访问日期格式一样持久。

任何帮助将不胜感激, 我很抱歉我的英语不好..

【问题讨论】:

数据库中存储的日期的数据类型和格式是什么? @Samir 数据类型为 Date/Time ,其样本数据来自 2/4/2011 4:20:28 PM 行 【参考方案1】:

对于 MSAccess 和 MS SQL Server,我相信您需要在日期周围使用井号,并且您可能还需要使用 CDate() 以确保日期被识别为日期。

$sql = "SELECT TOP 20 * from CHECKINOUT 
    inner join USERINFO on CHECKINOUT.USERID = USERINFO.USERID 
    where USERINFO.SSN = '$b' AND CDate( CHECKINOUT.CHECKTIME ) between '#$jo#' and '#$ji#'";

【讨论】:

以上是关于使用 php 在两个日期之间选择 ms 访问的主要内容,如果未能解决你的问题,请参考以下文章

从两个日期之间的 MS Access 表中选择?

MS Access 在两个日期之间进行选择?

如何在两个日期之间的时间选择一条记录

从 PHP 传递日期以从 Microsoft Access 获取数据

如果它在两个不同的日期之间,如何选择今天的日期[重复]

如果一个日期包含 null,则在两个日期之间选择