Thema: Delphi Abfrage mit Daumswechsel

Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Abfrage mit Daumswechsel

  Alt 19. Mai 2004, 14:27
In diesem Fall wäre BETWEEN wohl nicht geeignet da es ja die "begrenzungswerte" mit einschließt (>= AND <=).

Somit würde bei
1.5.2004 19:00 bis 2.5.2004 19:00
2.5.2004 19:00 bis 3.5.2004 19:00

Der Zeitstempel 2.5.2004 19:00 in beiden Abfragen berücksichtigt werden.

Ich würde abfragen: (datum > 1.5.2004 19:00) AND (datum <= 2.5.2004 19:00). Dann müsste es eigentlich stimmen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  anzahl : Integer;
  von : TDateTime;
  bis : TDateTime;
begin
  von := EncodeDateTime(2004,5,1,19,00,00,00); //1. Mai 2004 19:00
  bis := EncodeDateTime(2004,5,2,19,00,00,00); //2. Mai 2004 19:00
  dbMain.HostName:=Form2.Hostname.Text; //Server
  dbMain.User:=Form2.User.Text; //Benutzername
  dbMain.Password:=Form2.Password.Text; //Passwort
  dbMain.Database:=Form2.Datenbank.Text; //Name der Datenbank
  dbMain.Connected:=True; //Verbindung herstellen
  Screen.Cursor := crHourGlass;
  try
    with qrMain do
    begin
      Close;
      SQL.Text :=
       'SELECT COUNT(*) AS anzahl '+#10+
       'FROM table_ordertracking '+#10+
       'WHERE (order_type=:order_type)'+#10+
       'AND (datum > :von) AND (datum <= :bis)';
      ParamByName('order_type').AsString := 'FT';
      ParamByName('von').AsDateTime := von;
      ParamByName('bis').AsDateTime := bis;
      Open;
      anzahl := FieldByName ('anzahl').AsInteger;
      DFCount.Text:= IntToStr(anzahl);
      qrmain.Close;
  finally
    Screen.Cursor := crdefault;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat