Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL wählt zu Vergleichszwecken alle Zeilen vom letzten Monat bis (now() - 1 Monat) aus

Sie können den Ersten des Monats erhalten, indem Sie den letzten_Tag des Monats davor berechnen und einen Tag hinzufügen. Es ist umständlich, aber ich denke, es ist besser, als ein Datum als Zeichenfolge zu formatieren und diese für die Berechnung zu verwenden.

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)