echo $begrüßung;
Wenn ich gerne nur den Monat August selektieren möchte, wie klappt dies?
Man könnte das Datum anhand von Jahr und Monat einschränken:
WHERE YEAR(datum) = 2008 AND MONTH(datum) = 8
die Funktion EXTRACT() verwenden:
WHERE EXTRACT(YEAR_MONTH FROM datum) = '200808'
oder zur Not auch DATE_FORMAT():
WHERE DATE_FORMAT(datum, '%Y%m') = '200808'
Alle drei Varianten haben jedoch den Nachteil, dass die Berechnung für jeden Datensatz durchgeführt werden muss. Es kann dabei kein Index verwendet werden, wenn einer auf der Datumsspalte liegt. Für kleine Datenmengen fällt das nicht weiter ins Gewicht. Besser ist es jedoch, auch hier BETWEEN zu verwenden. Den Monatsanfang kann man recht einfach notieren
2008-08-01 oder mit Zeit 2008-08-01 00:00:00
Den Monatsletzten kann man mit PHP berechnen:
date('Y-m-d H:i:s', mktime(23, 59, 59, $monat + 1, 0, 2008))
Die Funktion mktime() rechnet ja mit, so dass man einen Monat hinzuzählen und beim Tag 0 angeben kann, was dann den Vortag vom 1. ergibt. Das klappt auch beim Jahreswechsel und mit Schaltjahren problemlos. Braucht man keine Uhrzeit, lässt man H:i:s weg und setzt die entsprechenden mktime-Parameter auf 0.
$sql = sprintf("SELECT ... WHERE datum BETWEEN '%s' AND '%s'",
date('Y-m-d H:i:s', mktime(0, 0, 0, $monat, 1, $jahr)),
date('Y-m-d H:i:s', mktime(23, 59, 59, $monat + 1, 0, $jahr)));
echo "$verabschiedung $name";