Einzelnen Beitrag anzeigen

Crowbar

Registriert seit: 17. Jun 2002
43 Beiträge
 
#7

AW: Umstellung auf SQL-Filterung

  Alt 21. Jul 2014, 15:58
Ist RESTELLUNG ein Stringfeld?
Nein, ein DATE Feld.
Aber warum behandelst du es dann wie Eines?

Tage := DaysBetween(Now, DBBuchungSQLQuery.FieldByName('RESTELLUNG').AsDataTime);

Jetzt nur noch in der entsprechenden DBMS-Doku nachsehen, wie sich die Funktion nennt, mit welcher man Datumsdifferenzen ausrechnen kann.


Und das DBBuchungTable.FieldByName('RESTELLUNG').AsString = '' sollte wohl auch ein DBBuchungTable.FieldByName('RESTELLUNG').IsNull darstellen.
... das ist alles einwenig unsauber programmiert ... deswegen auch meine Überarbeitung und gleichzeitiges Umsetzen auf SQL.

SQL-Code:
WHERE KATEGORIE = 'Einnahmen'
AND RESTELLUNG is not null
AND REEINGANG is null
AND DATEDIFF(day, NOW(), RESTELLUNG) >= 14
... Danke, das war schon fast die Lösung.
WHERE KATEGORIE = "Einnahmen" AND RESTELLUNG is not null AND REEINGANG is null Dieser SQL-Befehl klappt wunderbar, natürlich ohne diese 14 Tage-Berücksichtigung.

Sobald ich aber den gesamten Befehl benutze:

WHERE KATEGORIE = "Einnahmen" AND RESTELLUNG is not null AND REEINGANG is null AND DATEDIFF(day, NOW(), RESTELLUNG) >= 14 ... erhalte ich eine Fehlermeldung, die heißt:

...Boolean expression expectedt, but 'DATEDIFF' found..."
  Mit Zitat antworten Zitat