joah.: 24 Stunden

Beitrag lesen

Argh, zu schnell getippt, sorry. Du hattest recht, ich wollte, die die nicht geändert wurden/keine Treffer geliefert haben/etc...

Habs jetzt mal so umgebaut, scheint zu funktionieren, witzigerweise relativ zeitglich mit deiner Antwort, das between ist schick, eröffnet ein paar neue Möglichkeiten, hier für die anderen interessierten das SQL:

WHERE ... (datum BETWEEN now() AND DATE_SUB(now(), INTERVAL '24' DAY_HOUR))

Moin!

habe eine Abfrage die mir alle Datensätze liefert, die in den letzten 24 h keine Treffer liefern soll.

Diese Formulierung ist falsch. Die Vergangenheit kannst du mit SQL nicht mehr beeinflussen. Entweder meinst du "die in den letzten 24 h keinen Treffer GELIEFERT HABEN", oder vielleicht "geändert wurden", oder sonst etwas.

Auf den letzten Tag funktioniert das, jedoch soll sie wirklich 24h genau sein, nicht 1 Tag!

SELECT * FROM tabelle WHERE
TO_DAYS(now()) - TO_DAYS(datum) >= 1

Dann solltest du nicht mit Tagen rechnen, sondern mit Stunden. Die Datumsfunktionen scheinst du im Manual gefunden zu haben, dort kann man genauso gut auch mit Stunden rechnen.

Und dann solltest du lieber eine einleuchtendere SQL-Konstruktion verwenden:

WHERE datum BETWEEN now() AND (now() - 24h)*

* Wobei das Konstrukt "now-24h" von dir noch korrekt zu formulieren wäre.

  • Sven Rautenberg