Hallo,
ich möchte mit folgendem Source Code Zeiträume über
ADO under Jet Engine abfragen. Zeiträume innerhalb eines Jahres z.B. 01.01.2005 bis 20.03.2005 sind kein Problem. Ein Zeitraum der über ein Jahr geht z.B. 10.11.2004 bis 10.03.2005 wird nicht angezeigt. Woran kann das liegen? Muss man das Datum noch mal aufsplitten in Tag, Monat, Jahr? Wenn ja wie muss ich den Source Code abwandeln?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
StartDatum: String;
EndeDatum : String;
begin
DateSeparator := '/'; // ACHTUNG! hier wird eine globale Variable geändert
StartDatum := FormatDateTime('#mm/dd/yyyy#', DateTimePicker1.Date);
EndeDatum := FormatDateTime('#mm/dd/yyyy#', DateTimePicker2.Date);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from datum001');
// vereinfachte Version:
Query1.SQL.Add(' where VonDatum <=' + StartDatum);
Query1.SQL.Add(' and BisDatum >=' + EndeDatum );
// Version mit “between”:
//Query1.SQL.Add(' where (VonDatum between ' + StartDatum + ' and ' + EndeDatum + ')');
//Query1.SQL.Add(' and (BisDatum between ' + StartDatum + ' and ' + EndeDatum + ')');
Query1.Open;
end;