2013-03-03 262 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