我正在尝试按日期范围创建一个绑定到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");
答案 0 :(得分: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'");