我想在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']."'");
其中select1
和select2
是两个datepickers
。
代码在单个日期运行正常。它还显示输入日期。
在页面上显示编译和查询后,输出为:
SELECT * FROM inverter WHERE machine_id= '1111' AND DATE_FORMAT(cur_timestamp,"%m/%d/%Y" ) BETWEEN '11/01/2013' AND '01/06/2014'
请帮忙。
答案 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."'");