MySQL: Timestamp Spalte nach Monat und Jahr gruppieren
Tipp von Computer Experte | 22.05.2012 um 12:13
In Blogs oder Foren sehen wir oft an einer Seite eine Liste mit Links, die anzeigen, in welchem Monat und Jahr wie viele Beiträge geschrieben wurden. Wenn man auf einen dieser Links klickt bekommt man die entsprechenden Artikel und Beiträge aus genau diesem Monat.
Wie aber bestimmt man die Anzahl von Beiträgen je Monat?
Schließlich haben wir die Beiträge in unserer MySQL Tabelle zeitlich mit einer TIMESTAMP oder DATE Spalte eingeordnet und ein "GROUP BY datespalte" würde uns nicht die Anzahl der Artikel pro Monat ausgeben sondern die Anzahl der Artikel je Tag bwz spezifischen Datum - und das wollen wir nicht.
Der Schlüssel liegt in dem Benutzen der MySQL-Funktionen YEAR() und MONTH(), die uns Jahr und Monat einer TIMESTAMP-Spalte zurückgeben können. Unser GROUP BY sieht also so aus:
GROUP BY YEAR(dat), MONTH(dat)
Damit gruppieren wir nach dem Jahr und nach dem Monat der Spalte "dat". Ein Beispiel für ein komplettes SELECT haben wir hier:
SELECT COUNT(id), RPAD('0', 2, MONTH(dat)), YEAR(dat) FROM tabelle GROUP BY YEAR(dat), MONTH(dat);
Demnach zählen wir die ID oder eine andere eindeutige Zuordnung der Datensätze und lesen auch gleich Monat und Jahr der Beiträge aus. Das RPAD sorgt dafür, dass wir unseren Monat gleich in zwei Zeichen mit führenden Nullern auslesen können und nicht erst anschließend formatieren müssen.
Ein mögliches Ergebnis dieser Abfrage wäre:
ANZAHL MONAT JAHR 12 01 2012 37 02 2012 83 03 2012 78 04 2012 95 05 2012
Mit PHP lässt sich das ganze dann einfach so formatieren, dass wir eine Darstellung wie "01/2012 (12)" oder wie man es möchte bekommen und das ganze mit der Suchfunktion nach Artikeln verlinken können.
Über den Autor
Der Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen
Ähnliche Themen
MySQL: Neue Spalte zu einer Tabelle hinzufügen
Tutorial | 0 Kommentare
MySQL: Suchergebnisse auf mehreren Seiten darstellen
Tutorial | 0 Kommentare
jQuery: Nach unten und nach oben scrollen mit und ohne JavaScript
Tipp | 0 Kommentare
jQuery: CSS Stylesheet Switcher
Tutorial | 1 Kommentar
Virtuelle Domains für Apache/XAMPP erstellen
Tutorial | 0 Kommentare
JavaScript: Bereich durch Link aufklappen und zuklappen
Tutorial | 3 Kommentare
Delphi: Systemweiter HotKey
Tutorial | 3 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.