mysql上个月的日期声明

时间:2009-09-25 21:54:10

标签: php mysql date

我有一个日期,我怎么写一个where检查上个月到现在(第一个月或今天的一个月-1)?

2 个答案:

答案 0 :(得分:31)

SELECT * FROM table WHERE dateField > DATE_SUB(NOW(), INTERVAL 1 MONTH)

这将选择比当前时间戳减去一个月更新dateField的所有行(例如,今天给出的是2009年9月26日00:56,它会给出比2009年8月26日更新的行○点56)

答案 1 :(得分:6)

实际上,上个月到现在为止:

从月初开始:

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)

或者,你可能只想要上个月...说今天是九月,你想要所有的八月,不包括九月的任何一个......这就是我所理解的上个月&#39;。

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)