PHP MySQL 获取日期之间的数据

标签 php mysql

我有一个简单的代码,但我无法开始工作。我正在尝试获取选定日期之间的所有数据,但它不起作用。这是我的代码:

表单

 <form action="selectedInvoices.php" method="POST">
  <div class="row">
    <div class="large-4 columns">
      <label>From
        <input type="text" class="datepicker" name="from" />
      </label>
    </div>
    <div class="large-4 columns">
      <label>To
        <input type="text" class="datepicker" name="to" />
      </label>
    </div>
    <div class="large-4 columns">
      <button class="button" type="submit">Show Invoice</button>
    </div>
  </div>
  </form>

selectedInvoices.php

$fromOrig = strtotime($_POST['from']);
$toOrig = strtotime($_POST['to']);

$from = date('Y-m-d', $fromOrig);
$to = date('Y-m-d', $toOrig);

$sql = mysql_query("SELECT * FROM allinvoices WHERE acc_date BETWEEN '".$from."' AND '".$to."'");
while($r = mysql_fetch_assoc($sql)) {
$drno = $r['drno'];
$name = $r['name'];
$amount = $r['amountdue'];

我的 acc_date 字段的数据类型是 varchar,我猜这里是错误的。我插入的日期格式是m-d-Y。

我应该怎么做才能使代码正常工作?提前谢谢你。

enter image description here

最佳答案

WHERE STR_TO_DATE(acc_date, '%Y/%m/%d')  BETWEEN '".$from."' AND '".$to."'

Fiddle

mysql 中的日期是 Y-m-d,您正在比较 BETWEEN 的 d-m-Y。还要确保 $from < than $to。

关于PHP MySQL 获取日期之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35797616/

相关文章:

mysql - 将三个查询的结果放到一张表中

php - phpinfo 中未提及 mysqli.dll 和 mysql.dll

php - 检查 Laravel 中是否单击了按钮 type=submit name=submit

php - UTF-8贯穿始终

php - 小于号的MySQL时间戳比较

php - 显示 � 而不是 £

php - MySQL REST API 服务器上的连接过多 (PHP Yii2)

mysql插入竞争条件

php - 如何在数据库中保持日期列为空

php - 在 phpmyadmin 上查询任何限制值 ex : `10 OFFSET 3` . 但 php 仅支持 `10 OFFSET 0`