Hallo,
da du mit TQuery arbeitest ist es eventuell vorteilhafter, wenn du die Selektion über eine WHERE Klausel machst. In der Filter-Eigenschaft wird ein Datum-Literal in dem durch ShortDateFormat festgelegten Format angegeben, was du in deinem ersten Versuch richtig gemacht hast. Bist du sicher, dass das Feld "datum" den Typ "date" besitzt? Bei "datetime" müsstest du einen Intervalltest durchführen, damit du Treffer erhältst.
Delphi-Quellcode:
procedure test;
var
dt: TDateTime;
dtMin, dtSup: string;
begin
dt := EncodeDate(2001, 1, 1);
dtMin := QuotedStr(DateToStr(dt));
dtSup := QuotedStr(DateToStr(dt + 1));
qry.Close;
// hier einer von mehreren möglichen Ansätzen
qry.Filter := Format('datum >= %s and datum < %s', [dtMin, dtSup]);
qry.Filtered := True;
qry.Open;
end;
Falls das Feld doch vom Typ DATE sein sollte, dann erweitere mal das Testintervall, bis du Treffer erhältst. Nicht das du am Ende feststellst, dass du mit den falschen Daten getestet hast...
Grüße vom marabu