我對MySQL DATE和DATE_FORMAT有些熟悉。INTERVAL 30天沒有給出預期的結果
但是,使用INTERVAL-30 DAY運行查詢日期範圍時,要麼沒有得到正確的輸出,要麼會拋出錯誤。仔細查看錶格,發現date_buy的每一行都是這種格式: 2015年9月9日星期一,等等。我嘗試使用PHP date('D d F Y')而不是DATE(NOW())等等,但我無法解決這個問題。有沒有另外一個已知的解決方法呢?
是的,已經嘗試了一下date_buy_x和date_buy_y。即使表中有記錄,它也不會返回任何內容。
SELECT SUM(sales_total), date_buy FROM `Sebastian Estate Sales`
WHERE date_buy >= $date - INTERVAL 30 DAY
GROUP BY date_buy
SELECT SUM(sales_total), date_buy FROM `Sebastian Estate Sales`
WHERE date_buy BETWEEN date_buy_x && date_buy_y
GROUP BY date_buy ORDER BY date_buy DESC
UPDATE
SO,基於所述建議,並進一步展望DATE_FORMAT和CURDATE參數,已經能夠顯示數據。 ORDER BY還必須在DATE_FORMAT(date_buy,'%a%d%M%Y')才能正確輸出。但是,關於INTERVAL 30 DAY參數仍然存在問題。
WHERE datebuy <= DATE_FORMAT(CURDATE() - INTERVAL 30 DAY,'%a %d %M %Y')
GROUP BY date_buy ORDER BY DATE_FORMAT(date_buy, '%a %d %M %Y') DESC
這是帶回的數據,但仍遠超出了範圍,這讓我覺得這是不接受的間隔要求。
Sat 22 November 2014 (50 sales)
Thu 18 December 2014 (50 sales)
Thu 22 January 2015 (20 sales)
Sun 25 January 2015 (20 sales)
Mon 06 April 2015 (25 sales)
Sun 12 April 2015 (25 sales)
Mon 03 August 2015 (10 sales)
當輸出只能是:
Mon 03 August 2015 (10 sales)
不存儲日期爲字符串!恐怖。修復日期存儲,所有其他將修復其自我 –
Dagon。該解決方案需要此特定日期格式用於跨頁面的其他顯示,這就是爲什麼以這種方式存儲的原因。將當前日期固定在行中會很痛苦。 – charless
寫一些東西來讀取該字段的日期,解析它們,並將它們以正確的日期格式保存到您將從現在開始使用的新字段中。 – developerwjk