3

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

日期以以下格式存储: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");
4

1 回答 1

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'");
于 2013-03-03T03:45:51.960 回答