![]() |
Abfrage: Datensätze mit gleichem Datum und gleicher Zeit
Hilfe,
ich verbringe schon eine Ewigkeit damit, eine Abfrage zu formulieren, aber jedesmal gibt es eine Fehlermeldung Delphi 6 sucht in einer Abfrage Datensätze mit gleichem Datum aus einer MSAccess-Datenbank: (als Verbindung habe ich Provider=Microsoft.Jet.OLEDB.4.0 .... ausgewählt) diese 3 Versionen funktionieren alle nicht:
SQL-Code:
SELECT * FROM EKGDaten WHERE Date(Datum)=19/08/2004 and Time(Datum)= 15:13:10
SELECT * FROM EKGDaten WHERE Datum=19/08/2004 15:13:10 SELECT * FROM EKGDaten WHERE Datum=#19/08/2004 15:13:10# Im Code versuche ich es entsprechend so:
Delphi-Quellcode:
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.ADD(' Select * from EKGDaten'); AdoQuery1.SQL.ADD(' WHERE Nachname = ''' + pChar(Nachname) + ''''); AdoQuery1.SQL.ADD(' AND Vorname = ''' + pChar(Vorname) + ''''); AdoQuery1.SQL.ADD(' AND Geburtstag = ''' + pChar(Geburtstag) + ''''); AdoQuery1.SQL.ADD(' AND Datum = ''' + FormatDateTime('"#"m"/"d"/"yyyy hh:mm:ss"#"', Datum) + ''''); Ralf Stehle :wall: [edit=Sharky]Formatierungs-Tags gesetzt. Mfg, Sharky[/edit] |
Re: Abfrage: Datensätze mit gleichem Datum und gleicher Zeit
frage: stimmt da datumsformat von DB und system?
|
Re: Abfrage: Datensätze mit gleichem Datum und gleicher Zeit
wie meinst Du das? Das Gebietsschema ist Germany, bei der SQL-Abfrage erwartet die OLEDB-Verbindung zu Access aber die US-amerikanische Schreibweise. Das versuche ich mit dem FormatDateTime-String zu lösen. Wenn ich die Uhrzeit weglasse, funktioniert es sogar. Die Uhrzeit brauch ich aber unbedingt. Wie muß die FormatDateTime-Anweisung inclusive Uhrzeit lauten? Ich meine eigentlich ich habe alles richtig gemacht. Auch der Versuch ohne # # hat nicht geklappt. Irgendwo habe ich gelesen, dass anstatt # #-Zeichen das ganze in ' ' eingerahmt werden muss. Ich habe aber auch nicht herausgefunden, wie ich ' als Zeichen und nicht zum Begrenzen eines Strings in FormatDateTime einsetze
Ralf |
Re: Abfrage: Datensätze mit gleichem Datum und gleicher Zeit
ich habe gerade nochmal probiert, das Problem zu lösen. Ich könnte einfach in der Datenbank das DateTime-format in String verwandeln. Da dabei die Sortierung nach Datum nicht hundertprozentig zufriedenstellend klappt, geht es auch durch Stringumwandlung im SQL-Ausdruck:
SELECT * FROM EKGDaten WHERE CStr(Datum)= '19.08.2004 15:13:11' Ralf |
Re: Abfrage: Datensätze mit gleichem Datum und gleicher Zeit
Hai Ralf,
gerade beim arbeiten mit Datumswerten kann ich immer nur empfehlen Parameter in der SQL-Abfrag zu verwenden. Dann sollte sich nämlich der "Treiber" darum kümmern das alles im richtigen Format bei der Datenbank ankommt. Zum Beispiel so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin with ADOQuery1 do begin Close; SQL.Text := 'SELECT * FROM tabelle1 WHERE datum = :pdatum'; // ":pdatum" ist der Parameter ParamCheck := True; // Verwendung von Parametern aktivieren Parameters.ParamByName('pdatum').DataType := ftDateTime; //Typ auf DateTime setzen Parameters.ParamByName('pdatum').Value := now; // Parameter ":datum" setzen Open; end; end; |
Re: Abfrage: Datensätze mit gleichem Datum und gleicher Zeit
Danke für den guten Tipp
Ralf :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz