Entwickler-Ecke

Datenbanken - SQL Datumsfilter (Datumsbereich)


Arne Danikowski - Do 26.03.09 14:59
Titel: SQL Datumsfilter (Datumsbereich)
Hallo ich sitze hier und versuche mich an einem SQL Filter.
Ich möchte einen bestimmten Datumsbereich herausfiltern.
Es sollen nur Datensätze angezeigt werden, die

1.) einen Wert enhalten, also Datumsfeld darf nicht leer sein
2.) Ein Datum enthalten, das vor dem aktuellem Datum liegt


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm2.VorlageVersumt1Click(Sender: TObject);
Var nodate:TDate;

begin
  nodate := (StrToDate('01.01.2000')); 
  DM.JPQuery.Close;
  DM.JPQuery.SQL.Text :='Select * From JP Where (Vorlage <' + QuotedStr(DateToStr(nodate)) + ') >(Vorlage like' + QuotedStr(DateToStr(now)) + ')';
  DM.JPQuery.open;

  end;


Ich bekomme immer die Fehlermeldung, wenn der Filter angewendet wird,:

Datentypen in Kreterienausdruck unverträglich.

Ich verwende eine Accessdatenbank. Das Feld ist als Datumsfeld deklariert.

Wenn ich die Operatoren < und > durch "like" ersetzt erhalte ich keine Fehlermeldung. Der Filter funktioniert dann allerdings nätürlich auch nicht


ene - Do 26.03.09 15:06

Hi,

WHERE Not Vorlage Is Null Or Vorlage > Date(). Like geht nur bei Texten.