在计算日期时正确使用PHP和MySQLi查询

时间:2017-05-01 01:04:42

标签: php mysql mysqli

我是PHP / MySQLi的新手,遇到一些问题,想知道是否有人能看到我做错了什么。

我有两个有问题的字段,invoice_date和invoice_due_date,它们在数据库中格式化,如“2017/03/15和12/04/2017”

我要做的是检查查询中的invoice_due_date,如果日期小于当前日期,则返回这些项目,但似乎无法破解...这里是我尝试过的几个查询。

$query = "SELECT SUM(`total`) as `total` FROM invoices WHERE invoice_due_date < DATE_FORMAT(now(),'%d/%m/%Y') AND invoice_type = 'invoice' AND status = 'open'";
$query = "SELECT SUM(`total`) as `total` FROM invoices WHERE invoice_due_date < DATE_FORMAT(NOW(),'%d/%m/%Y') AND status = 'open'";

假设需要将NOW()转换为格式,需要比较才能正常工作但显然我缺少了什么哈哈

DATE_FORMAT(now(),'%d/%m/%Y')

1 个答案:

答案 0 :(得分:1)

YYYY-MM-DD列中将日期设置为ISO-8601日期DATE。您无法比较这样的值。这完全是胡说八道,因为字段的顺序不正确。

看看这些如何排序:

2011-02-01
2012-01-01
2015-01-02

虽然“有序”,但也可能是随机的:

01/01/2012
01/02/2011
02/01/2015

尽可能保持数据的中性格式,并在显示逻辑中应用任何必要的日期格式。