我有一個日期,我該如何編寫一個where
來檢查上個月,直到現在(第一個還是今天的第-1個月)?mysql上個月的日期聲明
9
A
回答
29
SELECT * FROM table WHERE dateField > DATE_SUB(NOW(), INTERVAL 1 MONTH)
這將選擇具有比當前時間戳減去一個月(dateField
最近一個所有行的話,例如,鑑於今天是2009年09月26日00:56,將給予那些比最近26 2009年8月更多的行00:56)
5
事實上,上個月到現在爲止應該是:
從月初:
SELECT * FROM table
WHERE date >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-01')
AND date <= NOW()
由於一個月前:(希望你在表上沒有未來的日期)
SELECT * FROM table
WHERE date >= (CURRENT_DATE - INTERVAL 1 MONTH)
或者,您可能希望只有最後一個月......今天要說的是九月,你希望所有月,不包括任何九月......這就是我所理解的'上個月'。
SELECT * FROM table
WHERE date >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y/%m/01')
AND date < DATE_FORMAT(CURRENT_DATE, '%Y/%m/01')
你也可以在同樣的結果做:
SELECT * FROM table
WHERE YEAR(date) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
AND MONTH(date) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)