2017-02-24 58 views
-3

我想從php中的數據庫中獲取兩個日期之間的所有記錄。日期格式爲dd/mm/yyyy hh:mm:ss。例如06 /月/ 2016 5時56分15秒在dd/mm/yyyy中搜索兩個日期之間的數據hh:mm:ss在sql中

我用下面的代碼

$Sdate=date_create($_GET['sdate']); 
$start=date_format($Sdate,"d/M/Y H:i:s"); 

$Edate=date_create($_GET['edate']); 
$end=date_format($Edate,"d/M/Y H:i:s"); 

$sql = "SELECT * FROM `payments` WHERE `customerid` = '".$_SESSION['id']."' AND dateandtime BETWEEN ('".$start."', '".$end."') ORDER BY id DESC"; 

但是,這是行不通的

預先感謝您對我的幫助

+3

'dateandtime BETWEEN('「。$ start。」','「。$ end。」')'應該是'dateandtime BETWEEN'。「$ start。」'AND'「。$ end。 「''。 https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_between – bassxzero

+0

[SQL注入無處不在!!!](https://en.wikipedia.org/wiki/SQL_injection) – Mohammad

+0

或者僅僅是''$ start'和'$ end'' - 但是請參閱關於注入,參數化查詢等。 – Strawberry

回答

0

試試這個:

$Sdate = date('Y-m-d H:i:s', strtotime($_GET['sdate']); 
$Edate = date('Y-m-d H:i:s', strtotime($_GET['edate']); 
$sql = "SELECT * FROM `payments` 
WHERE `customerid` = '".$_SESSION['id']."' 
AND dateandtime BETWEEN '$Sdate' AND '$Edate' 
ORDER BY id DESC"; 

正確的語法是:

dateField BETWEEN dateFieldLow AND dateFieldHigh 
+0

謝謝你的幫助 – Farhan

相關問題