我有一个简单的代码,但我无法开始工作。我正在尝试获取选定日期之间的所有数据,但它不起作用。这是我的代码:
表单
<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。
我应该怎么做才能使代码正常工作?提前谢谢你。
最佳答案
WHERE STR_TO_DATE(acc_date, '%Y/%m/%d') BETWEEN '".$from."' AND '".$to."'
mysql 中的日期是 Y-m-d,您正在比较 BETWEEN 的 d-m-Y。还要确保 $from < than $to。
关于PHP MySQL 获取日期之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35797616/