在MS Access和php两个日期之间选择

在MS Access和php两个日期之间选择,php,ms-access,Php,Ms Access,我想从MSAccess数据库中选择PHP中两个数据和时间之间的数据 我用了这个密码 $dbc = odbc_connect("Attend", "", ""); if(!$dbc) { exit("Cannection Faild"); } $in = date('n/j/Y h:i:s',strtotime('2019-01-30 00:00:01')); $out = date('n/j/Y h:i:s',strtotime('2019-01-30 23:59:59')); $q

我想从MSAccess数据库中选择PHP中两个数据和时间之间的数据

我用了这个密码

$dbc = odbc_connect("Attend", "", "");
if(!$dbc) {
    exit("Cannection Faild");
}

$in = date('n/j/Y h:i:s',strtotime('2019-01-30 00:00:01'));
$out = date('n/j/Y h:i:s',strtotime('2019-01-30 23:59:59'));

$query = "SELECT * FROM CHECKINOUT WHERE USERID = 214 AND CDate(CHECKTIME) between '$in' and '$out'";

$results = odbc_exec($dbc, $query);

if(!$results) {
    exit("Error in SQL");
}

while (odbc_fetch_row($results)) {
    echo odbc_result($results, "CHECKTIME")."<br/>";
}

odbc_close($dbc);
它将显示意外的结果。如下图所示:

2018-01-03 08:26:52
2018-01-03 20:19:09
2018-01-30 07:55:38
2018-01-30 14:37:09
2019-01-30 11:48:27
2019-01-30 12:17:26
2019-01-30 12:38:33
2019-01-30 13:29:27
2019-01-30 14:15:20
2019-01-30 18:11:27
2019-01-30 19:09:10
2019-01-30 19:28:43
2019-01-31 10:28:51
我找到了解决办法。但它不起作用。这不算什么

那么,我需要在哪里换车? 感谢您以上午/下午的形式

'n/j/Y h:i:s A'

从未尝试从PHP查询Access DB,但由于您使用的是ODBC,因此与其他编程语言没有任何区别

试试这个

$in = '2019-01-30 00:00:01';
$out = '2019-01-30 23:59:59';

$query = "SELECT * FROM CHECKINOUT WHERE USERID = 214 AND CDate(CHECKTIME) between #$in# and #$out#";
在MS Access SQL中,日期应该用括号括起来

我看不出有什么理由首先在日期中转换字符串,因为MS access会将字符串识别为日期,如果您使用标准的国际格式Y-m-d H:I:s,那么它们应该被正确解析

此外,如果CHECKTIME列在数据库中正确定义为date,则不需要CDate

$in = '2019-01-30 00:00:01';
$out = '2019-01-30 23:59:59';

$query = "SELECT * FROM CHECKINOUT WHERE USERID = 214 AND CDate(CHECKTIME) between #$in# and #$out#";