Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL seleziona tutte le righe dal mese scorso fino a (now() - 1 mese), a scopo comparativo

Puoi ottenere il primo del mese, calcolando l'ultimo_giorno del mese precedente e aggiungendo un giorno. È imbarazzante, ma penso sia meglio che formattare una data come stringa e usarla per il calcolo.

select 
  *
from
  yourtable t
where
  /* Greater or equal to the start of last month */
  t.date >= DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH)), INTERVAL 1 DAY) and
  /* Smaller or equal than one month ago */
  t.date <= DATE_SUB(NOW(), INTERVAL 1 MONTH)