2013-03-03 160 views
3

我試圖創建一個搜索條件,綁定到一個MySQL數據庫,日期範圍,但它似乎沒有返回到目前爲止的預期結果。按日期搜索範圍

的日期都存儲在以下格式:mm/dd/yy,我只想按日期範圍進行排序,因此,如果用戶將進入日期From: 2/2/12<current date>比查詢將返回所有查詢落在該日期範圍包括當前日期。

這是我的嘗試:

我在DB測試workorder記錄具有以下時間戳:1362250990和1362251039.

PHP

$date1 = strtotime($_GET['dateFirst']); 
$date2 = strtotime($_GET['dateSecond']); 
echo $date1 . '> work order date <='. $date2; 
$results = mysqli_query($mysqli, "SELECT * FROM workorders WHERE (work_order_date > $date1) AND (work_order_date <= $date2) LIMIT 20"); 

回答

2

日期應存放在合適的色譜柱類型(DATE,DATETIME或優選TIMESTAMP)。

這會自動使它們易於排序,因爲它們是按大端順序排列的。

假設你的輸入格式是可靠的,那麼你可以使用BETWEEN比較操作是這樣的:

$date1 = date("Y-m-d H:i:s",$_GET['dateFirst']); 
$date2 = date("Y-m-d H:i:s",$_GET['dateSecond']); 
$results = mysql_query("SELECT * FROM `workorders` WHERE `work_order_date` BETWEEN '$date1' AND '$date2'"); 
+0

感謝您的答覆。我遇到以下錯誤:'遇到的格式不正確的數值'與此實現。 – AnchovyLegend 2013-03-03 03:54:42

+0

我從來沒有聽說過我生命中的那個錯誤。 – 2013-03-03 03:58:29

+0

請放心,我不是那麼有創造力,以彌補奇怪的聲音錯誤;) – AnchovyLegend 2013-03-03 04:00:22