mysql上个月的日期声明

An *_*yee 10 php mysql date

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

and*_*dri 31

SELECT * FROM table WHERE dateField > DATE_SUB(NOW(), INTERVAL 1 MONTH)
Run Code Online (Sandbox Code Playgroud)

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


mim*_*lea 7

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

从月初开始:

SELECT * FROM table
WHERE date >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-01')
AND date <= NOW()
Run Code Online (Sandbox Code Playgroud)

一个月前:(希望你未来的日期没有在桌子上)

SELECT * FROM table
WHERE date >= (CURRENT_DATE - INTERVAL 1 MONTH)
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM table
WHERE date >= DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y/%m/01')
AND date < DATE_FORMAT(CURRENT_DATE, '%Y/%m/01')
Run Code Online (Sandbox Code Playgroud)

你也可以做同样的结果:

SELECT * FROM table
WHERE YEAR(date) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
AND MONTH(date) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)
Run Code Online (Sandbox Code Playgroud)