使用PHP获取两个日期之间的MySQL数据。

3

我正在尝试获取两个日期之间的数据,日期在mysql中以DATETIME形式存储,并显示为2016-04-02 04:55:03

为了获取日期,我使用了带有以下输入表单的Bootstrap datetimepicker:

<div class="input-group date" id="datetimepicker1">
     <input type="text" class="form-control" id="checkin" name="from_date" data-date-format="dd/mm/yyyy" placeholder="Select Start Date">
      <span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
   </div>
   <div class="gap-small"></div>
   <div class="input-group date">
       <input type="text" class="form-control datechange" id="checkout" name="to_date" data-date-format="dd/mm/yyyy" placeholder="Select End Date">
       <span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
   </div>

我正在使用AJAX将这些值发送到PHP。

在结果页面中:

var_dump($_POST)

结果:

    array(3) { ["from_date"]=> string(10) "30/03/2016" ["to_date"]=> string(10) "05/04/2016" ["search_place"]=> array(1) { [0]=> string(0) "" } }

我正在获取from_dateto_date的值。

现在,当我尝试检索从日期到日期之间的内容时,它无法工作。以下是我的SQL语句:

$sql="SELECT * FROM mytable WHERE evedate BETWEEN '" . $from_date . "' AND  '" . $to_date . "'";

你的查询中有一个未打开的闭括号。你收到了什么错误信息? - Jester
日期时间格式为2016-04-02,但您获得的数据是30/03/2016。 - channasmcs
是的,无法获取日期为30/03/2016。 - Asesha George
我认为channasmcs已经回答了你的问题,你需要将30/03/2016转换为2016-03-30,以使SQL查询正常工作。 - IanMcL
尝试使用strtodate但无效。 - Asesha George
SELECT * FROM mytable WHERE evedate BETWEEN concat(str_to_date('".from_date."','%d/%m/%Y'),' 00:00:00') AND concat(str_to_date('".to_date."','%d/%m/%Y'),' 23:59:59') 是正确的解决方案,我已删除我的回答。 - mitkosoft
2个回答

2
$sql="SELECT * FROM mytable WHERE evedate BETWEEN concat(str_to_date('".$from_date."','%d/%m/%Y')) AND concat(str_to_date('".$to_date."','%d/%m/%Y')

正在工作。


有更好的答案吗?请分享 - Asesha George
@AseshaGeorge,如果evedate是日期时间格式,您必须将$from_date00:00:00连接起来,并将$to_date23:59:59连接起来,否则查询将截断一些to_date日期。请参见我上面的评论,您将其作为建议。 - mitkosoft

0

你可以将日期转换为DATE_FORMAT格式

$sql="SELECT * FROM mytable WHERE DATE_FORMAT(evedate, '%m/%d/%Y') BETWEEN '" . $from_date . "' AND  '" . $to_date . "'";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接