2017-05-01 53 views
0

我是新來的PHP /庫MySQLi並有一個小問題,不知道是否有人能看到我在做什麼錯。使用PHP和庫MySQLi查詢正常工作時退房日期

我有問題,invoice_date和invoice_due_date 2場這是在數據庫中的格式,如「15/03/2017和2017年12月4日」

什麼,我試圖做的是檢查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

它們被設置爲Varchar,如果這就是你的意思... – James

+0

錯誤的做事方式我知道,也許應該將其更改爲在數據庫中使用日期 – James

回答

1

設置你的日期是ISO-8601日期,YYYY-MM-DDDATE列中。你不能比較這樣的值。這是完全廢話,因爲字段的順序不正確。

怎麼看待這些排序:

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

對戰這裏面可能也有,即使「有序」隨機:

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

讓您的數據在最中立的格式可能並應用顯示邏輯中必要的日期格式。