Hi!
Beim Erstellen dieser Datensätze ermittle ich mit php den aktuellen Unix-Zeitstempel-Wert (
$now=time();
)und trage diese Zahl (gemeinsam mit den anderen Daten) als "erstellt" in die Tabelle ein.Warum? MySQL bietet - wie jedes vernünftige rDBMS - brauchbare Funktionen, die mit Datums- und Zeitangaben umgehen können.
Genau, ein NOW() ins Statement und alles ist erledigt. Kein Erzeugen eines Timestamps und Umwandeln in ein von MySQL erkanntes Datums- und Zeit-String-Format oder FROM_UNIXTIME()-Aufrufe. Und es geht unter Umständen noch kürzer, wenn man die eingebaute Magie des TIMESTAMP-Feldtyps nutzen kann.
(ich habe in JEDER Tabelle nämlich auch einen current-time Zeitstempel, der automatisch miterstellt wird und der somit den Zeitpunkt der erstellung wiedergibt),
Ah, da ist wohl also doch schon so ein TIMESTAMP-Feld vorhanden?
Warum dann also den Extra-Aufwand mit der Zeitermittlung in PHP usw.? Welches Datenformat hat dieser "Zeitstempel"?
Datenformat klingt so verwechselbar. Besser wäre vom Feldtyp zu sprechen. Formate kann man ja beispielsweise in ein String-Feld beliebig viele schreiben.
DELETE FROM warteliste
WHERE TIMESTAMPDIFF(HOUR,
{DEIN_CURRENT_TIME_ZEITSTEMPEL_HIER}
, SYSDATE()) > 2
Ich finde ja das Rechnen mit INTERVAL einfacher zu lesen: WHERE feld < NOW() - INTERVAL 2 HOUR
Lo!