[英]Select between two dates MS Access and php
我想從Ms Access數據庫中的兩個數據和時間之間選擇數據。
我用了這段代碼。
$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);
但這沒有顯示。 但是,如果我用此方法更改日期和過期日期:
$in = date('n/j/Y h:i:s',strtotime('2019-01-29 00:00:01'));
$out = date('n/j/Y h:i:s',strtotime('2019-01-31 23:59:59'));
它將顯示意外的結果。 如下所示:
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
我在這里找到了解決方案。 但這是行不通的。 這沒什么顯示。
那么,我需要在哪里更改? 謝謝
從未嘗試從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將把您的字符串識別為日期,並且如果您使用標准的國際格式Ymd H:i:s
,則應該正確地解析它們Ymd H:i:s
此外,如果將CHECKTIME列正確定義為數據庫中的日期,則不需要CDate()
格式丟失AM / PM
'n/j/Y h:i:s A'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.