dedlfix: Php-Datumabfrage

Beitrag lesen

echo $begrüßung;

Ganz so simpel nicht, aber doch recht einfach. Um dein problem mit den 24 Stunden zu umgehen, musst du zuerst den Datumswert als reine Tage setzen und dann diesen Wert - 1 Tag nehmen.
ungefähr so:
SELECT id,date,ueberschrift FROM news WHERE TO_DAYS(date) >= (TO_DAYS(CURRENT_DATE)-1)

Das ist nicht zu empfehlen, denn zum Finden der passenden Zeilen muss die gesamte Tabelle durchlaufen und TO_DAYS() auf jede Zeile angewendet werden. Das kostet Zeit und ein möglicher Index auf der date-Spalte kann auch nicht verwendet werden. Berechnungen ohne Spalten (wie nachfolgend von mir verwendet) müssen nur einmal nach dem Parsen ausgerechnet werden und können dann per Index gesucht werden.

Besser ist

... WHERE date = CURDATE() - INTERVAL 1 DAY

und diesen Vorschlag machte ich ja schon in meiner ersten Antwort. Wenn date nicht vom Typ DATE ist sondern DATETIME oder TIMESTAMP müsste, wie von Sven angemerkt der Bereich von 0 Uhr bis einschließlich 23:59:59 Uhr berücksichtigt werden. date mit DATE(date) auf den Datumswert zu reduzieren ergibt das gleiche Full-Table-Scan-Problem wie oben.

... WHERE date BETWEEN SUBTIME(NOW(), CURTIME()) - INTERVAL 1 DAY AND ADDTIME(SUBTIME(NOW(), CURTIME()), '23:59:59') - INTERVAL 1 DAY

oder kürzer ohne BETWEEN

... WHERE date >= CURDATE() - INTERVAL 1 DAY AND date < CURDATE()

echo "$verabschiedung $name";