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

MySQL Wählen Sie die Daten des letzten Monats nach aktuellem_Zeitstempel aus

Dadurch erhalten Sie den letzten Monat:

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

Dies ab Anfang des Monats:

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

Das BETWEEN ist nichts Besonderes, es ist nur eine Abkürzung für

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

Hmm, ich schätze, der NOW()-Vergleich wird eigentlich nicht benötigt, da alle Datensätze vor jetzt liegen werden.

Also mach einfach:

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

Dynamischer Beginn des aktuellen Monats:

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

Alles, was dies tut, ist, den Tag des Monats aus dem aktuellen Datum zu extrahieren und dann entsprechend viele Tage weniger einen davon abzuziehen.