Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Abfrage: Datensätze mit gleichem Datum und gleicher Zeit (https://www.delphipraxis.net/29482-abfrage-datensaetze-mit-gleichem-datum-und-gleicher-zeit.html)

Ralf Stehle 9. Sep 2004 17:14


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]

kiar 9. Sep 2004 21:31

Re: Abfrage: Datensätze mit gleichem Datum und gleicher Zeit
 
frage: stimmt da datumsformat von DB und system?

Ralf Stehle 9. Sep 2004 21:54

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

Ralf Stehle 9. Sep 2004 22:05

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

Sharky 10. Sep 2004 06:54

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;

Ralf Stehle 10. Sep 2004 17:03

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 08:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz