echo $begrüßung;
Ich möchte aus einer Tabelle in einer MySQL-Datenbank Einträge löschen, bei denen das Datum in der Spalte "gelesen" eine bestimmte Zeitspanne her ist, zum Beispiel 24 Stunden oder eine Woche. Wäre mit Timestamps natürlich kein Problem, ich möchte aber in dem Fall mit Datetime-Typen arbeiten. Wie löse ich das am elegantesten?
Welchern Timstamp meinst du denn? Den Unix-Timestamp in einem INT-Feld gespeichert oder ein MySQL-TIMESTAMP-Feld? Mit letzterem kann man alle Datums- und Zeitfunktionen verwenden, die auch auf DATE, TIME, DATETIME anwendbar sind.
Zum anderen DATEADD, die eigentlich genau das ist, was ich gesucht habe.
DATE_ADD() kam ja schon als Antwort. Nebenbei: Verwendet man das in einer View schreibt MySQL das in die Form
datumswert +/i INTERVAL wert einheit
um. Das scheint ihm besser zu gefallen als DATE_ADD(datumswert,INTERVAL wert einheit). Wie auch immer.
Es gibt nun zwei Notationsarten für dein Problem
a) spalte + INTERVAL ... < NOW()
b) spalte < NOW() - INTERVAL ...
Zu bevorzugen wäre Variante b), denn dabei muss der Ausdruck »NOW() - INTERVAL ...« nur einmal berechnet werden und anschließend kann ein vorhandener Index auf der Spalte für den Vergleich verwendet werden. Bei a) muss stattdessen der Ausdruck für jeden Spaltenwert neu berechnet werden und ein Index kann auch nicht verwendet werden.
echo "$verabschiedung $name";