sql >> Base de Datos >  >> RDS >> Mysql

MySQL Seleccione los datos del mes pasado por current_timestamp

Esto le dará el último mes:

WHERE dateColumn BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW();

Esto desde el comienzo del mes:

WHERE dateColumn BETWEEN STR_TO_DATE('2012-09-01', '%Y-%m-%d') AND NOW();

El BETWEEN no es nada especial, es solo un atajo para

dateColumn <= ... AND dateColumn >= ....

Hmm, supongo que la comparación NOW() en realidad no es necesaria, ya que todos los registros serán anteriores.

Así que solo haz:

WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')

Comienzo dinámico del mes actual:

WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY

Todo lo que hace es extraer el día del mes de la fecha actual, luego restarle la cantidad de días menos uno.