8 Stimmen

MySQL Select Daten des letzten Monats nach current_timestamp

Bis heute, wenn ich mit MySQL arbeitete und brauchte, um Aktionen mit Datum/Zeit durchführen ich war mit int-Spalte mit Unix-Timestamp und es gab keine Probleme, aber heute nach dem Lesen einige Führer, die ich beschlossen, Timestamp-Spalte mit "current_timestamp" standardmäßig zu testen.

Also ich bin daran interessiert, wie man letzten Monat Daten nach Spalte auswählen, wo Info im "2012-09-07 00:23:30" Format ist? Und vielleicht gibt es einige knifflige Abfragen, die mir Daten vom Beginn dieses Monats geben (nicht die letzten 30 Tage, aber von 09-01 00:00:00 bis heute)?

18voto

Ariel Punkte 24742

So erhalten Sie den letzten Monat:

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

Und das seit 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 ist eigentlich nicht erforderlich, da alle Datensätze vor dem jetzigen Zeitpunkt liegen werden.

Also tun Sie es 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

Dabei wird lediglich der Tag des Monats aus dem aktuellen Datum extrahiert und dann so viele Tage abzüglich eines Tages davon abgezogen.

3voto

Ike Walker Punkte 62083

Sie sollten einen Blick werfen auf gemeinsames_schema Es ist einfach zu installieren und verfügt über viele großartige Tools, darunter eine Funktion namens start_of_month() das ist genau das, wonach Sie suchen:

select * 
from your_table
where your_column >= common_schema.start_of_month(now())

-1voto

Federico Punkte 6140

Wenn Sie einen mysql-Zeitstempel haben, etwa wie 2013-09-29 22:27:10 können Sie dies tun

 select * from table WHERE MONTH(FROM_UNIXTIME(UNIX_TIMESTAMP(time)))=9;

Konvertieren Sie in Unix und verwenden Sie dann die Unix-Zeitfunktionen, um den Monat zu extrahieren, in diesem Fall 9 für September.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X