按日期范围搜索

时间:2013-03-03 03:42:26

标签: php mysql

我正在尝试按日期范围创建一个绑定到mySQL数据库的搜索条件,但到目前为止它似乎没有返回预期的结果。

日期按以下格式存储:mm/dd/yy我只想按日期范围排序,因此如果用户输入日期From: 2/2/12<current date>而不是查询将返回该日期范围内的所有查询,包括当前日期。

这就是我的尝试:

我在数据库中测试了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");

1 个答案:

答案 0 :(得分:2)

日期应始终存储在合适的列类型中(DATEDATETIME或最好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'");