我是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')
答案 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
尽可能保持数据的中性格式,并在显示逻辑中应用任何必要的日期格式。