Nur bestimmten Monat aus Datenbank auslesen

hab1cht

Erfahrenes Mitglied
Hallo,
ich will gerade eine Zugriffsstatistik machen, nun will ich allerdings nicht die Zugriffe jeden Tages anzeigen lassen, sondern nur die Zugriffe der Tage des aktuellen Monats.
Tabellenbeispiel:

ID | Datum
--------------------------------------
1 | 2006-10-30 16:14:12
2 | 2006-10-31 16:14:12
3 | 2006-10-31 16:14:12
4 | 2006-11-01 16:14:12

So meine Abfrage sieht momentan so aus:
SELECT SUBSTRING(Datum, 1, 10) Datum, COUNT(ID) AnzahlBesucher
FROM $TableBesucher
GROUP BY SUBSTRING(Datum, 1, 10)
ORDER BY SUBSTRING(Datum, 1, 10)

Jetzt will ich dass nur die Einträge selektiert werden, die im aktuellen Monat (11) sind, in diesem Falle also nur der Eintrag 4.

Wie mache ich das?

Vielen Dank im Voraus.

MfG
hab1cht
 
Hallo,

das ist ein eindeutiger Fall von „falscher Datentyp“ ;) Es gibt bei den allermeisten RDBMS eben nicht nur Ganzzahlen und Strings, sondern auch spezialisierte Datentypen – in diesem Fall wäre TIMESTAMP oder DATETIME (sofern verfügbar) eine bessere Wahl gewesen.

Du kannst also entweder deine Datenbank entsprechend umstellen oder den holprigen Weg mit SUBSTRING weitergehen:
Code:
SELECT SUBSTRING(Datum, 1, 10) Datum, COUNT(ID) AnzahlBesucher
FROM $TableBesucher
WHERE SUBSTRING(Datum, 6, 2) = '11'

Grüße,
Matthias
 
danke werde das mal probieren,
das Format für das Datum ist übrigens datetime, kann ich dann das ganze einfacher lösen?

MfG
hab1cht
 
Für mySQL gibt es Funktionen die direkt auf ein Datum anwendbar sind. Zu finden im mySQL Manual unter Date Time Functions oder sowas. Gerade keine Zeit zu suchen :)
 
Zurück