Auge: DATE_SUB(NOW(), INTERVAL 10 DAY

Beitrag lesen

Hallo

SELECT `titel` FROM abrechnungsdetails WHERE `von` = DATE_SUB(NOW(), INTERVAL 10 DAY)

Wenn ich dieses ausführe halte ich keine Einträge obwohl keiner vorhanden sein muss.

Soso.

Eine Fehlermeldung erhalte ich allerdings auch nicht.

Warum auch? Du erhältst einfach nur eine leere Ergebnismenge, da du Datensätze mit dem exakten Zeitstempel von jetzt - 10 Tage inklusive der Uhrzeit (!) suchst. Gibt es keinen Datensatz mit diesem Datum (inklusive der Uhrzeit), wird auch keiner gefunden.

Führe ich folgendes aus, erhalte ich Einträge, die mich aber gerade nicht interesieren

SELECT `titel` FROM abrechnungsdetails WHERE `von` > DATE_SUB(NOW(), INTERVAL 10 DAY)

Was ist bessere, die Berechnung direkt in bei der Abfrage durchführen lassen, sollte dieses überhaupt möglich sein

Je nachdem, wonach du fragen willst, ist das möglich. Vermutlich musst du nur die Formulierung der Bedingung verfeinern.

[Nachtrag]: Wenn du eine Spalte mit dem Typ date abfragst, musst du den Vergleichswert auch als Datum und nicht als Zeitstempel (datetime) formulieren.

SELECT `titel` FROM abrechnungsdetails WHERE `von` = DATE(DATE_SUB(NOW(), INTERVAL 10 DAY))

Mit der Extraktion des Datumswerts aus dem DATE_SUB-Aufruf hast du auch auf der rechten Seite einen Wert vom Typ date.

Tschö, Auge

--
Eine Kerze stand [auf dem Abort] bereit, und der Almanach des vergangenen Jahres hing an einer Schnur. Die Herausgeber kannten ihre Leser und druckten den Almanach auf weiches, dünnes Papier.
Kleine freie Männer von Terry Pratchett