echo $begrüßung;
Ich speichere in meiner MySQL tabelle das Datum per VARCHAR(20) im Timestamp.
Eine schlechte Idee.
Jetzt würde ich gerne in meiner MySQL Abfrage nur dort selektieren, wo das Jahr 2008 ist.
Wie ginge das?
Ich nehme an, der Timestamp ist ein Unix-Timestamp, kein MySQL-Timestamp. Dann musst du zuerst einen Datumswert errechnen FROM_UNIXTIME(), von dem du dann das YEAR() ermitteln kannst.
Doch selbst wenn das Feld von einem der Datumstypen ist und man dann WHERE YEAR(feld) = $jahr nehmen könnte, wäre das nicht sehr performant, weil diese Rechnung für jede Zeile ausgeführt werden muss und dafür kein Index verwendet werden kann. Besser ist es, einen Index auf dem Datumsfeld zu haben und dann BETWEEN zu verwenden:
... WHERE feld BETWEEN MAKEDATE($jahr, 1) AND LAST_DAY(MAKEDATE($jahr, 365))
Besser hab ich es nicht hinbekommen, aber das sieht schlimmer aus, als es ist. Die beiden Argumente von BETWEEN werden nämlich nur ein einziges Mal berechnet und die Ergebnismenge kann nun effizient über den Index eingeschränkt werden. Man kann das sehr schön mit EXPLAIN verfolgen.
echo "$verabschiedung $name";