使用日期格式搜索一段时间的数据

时间:2014-01-06 11:02:25

标签: php mysql

我想在MySQL表'逆变器'中搜索特定时间段的数据。在页面中,我使用了一个java datepicker,它返回格式为mm/dd/yyyy的值。在数据库表中,日期以yyyy-mm-dd-hh-mm-ss格式存储。

我使用了查询:

$query= ("SELECT * FROM inverter WHERE id= '".$_POST['mac']."' AND DATE_FORMAT(cur_timestamp,\"%m/%d/%Y\" ) BETWEEN '".$_POST['select1']."' AND '".$_POST['select2']."'"); 

其中select1select2是两个datepickers。 代码在单个日期运行正常。它还显示输入日期。

在页面上显示编译和查询后,输出为:

SELECT * FROM inverter WHERE machine_id= '1111' AND DATE_FORMAT(cur_timestamp,"%m/%d/%Y" ) BETWEEN '11/01/2013' AND '01/06/2014'

请帮忙。

1 个答案:

答案 0 :(得分:0)

我可以为您提供一种可能的方式,因为我不确定哪种方式适合您。

首先尝试这个:

$query= ("SELECT * FROM inverter WHERE id= '".$_POST['mac']."' AND DATE_FORMAT(cur_timestamp,\"%m/%d/%Y\" ) > '".$_POST['select1']."' AND  DATE_FORMAT(cur_timestamp,\"%m/%d/%Y\" ) < '".$_POST['select2']."'");

第二个是试试这个:

$date1 = date('Y-m-d',strtotime($_POST['select1']));
$date2 = date('Y-m-d',strtotime($_POST['select2']));

$query= ("SELECT * FROM inverter WHERE id= '".$_POST['mac']."' AND DATE(cur_timestamp) > '".$date1."' AND DATE(cur_timestamp) < '".$date2."'");