![]() |
Datenbank: Access • Version: 2003 • Zugriff über: ADO
SQL Datumsabfrage wird nicht angezeigt
Hallo,
wie kann ich über eine Query einen Zeitraum abfragen in dem ich das Datum definiere. Mit folgendem Code werden keine Datensätze angezeigt. SQL_Text := 'SELECT * FROM Tabelle1 where Datum between :''30.05.2008'' and :''30.06.2008'''; Was mache ich hier falsch? Gruß digati |
Re: SQL Datumsabfrage wird nicht angezeigt
Entweder Werte oder Parameter
|
Re: SQL Datumsabfrage wird nicht angezeigt
Was mkinzler in seiner minimalistischen Art zum Ausdruck bringen möchte, ist das widersprüchliche Vorhandensein der Doppelpunkte. Er würde auch, wenn ich ihn hier richtig einschätze, zu der Verwendung von Parametern raten, damit die DB-Komponente die korrekte Formatierung vornimmt.
|
Re: SQL Datumsabfrage wird nicht angezeigt
Also entweder:
Delphi-Quellcode:
oder
SQL_Text := 'SELECT * FROM Tabelle1 where Datum between ''30.05.2008'' and ''30.06.2008''';
Delphi-Quellcode:
SQL_Text := 'SELECT * FROM Tabelle1 where Datum between :datum1 and :datum2';
... ParamByName('datum1').asString := '30.05.2008'; ParamByName('datum2').asString := '30.06.2008'; ExecSQL; |
Re: SQL Datumsabfrage wird nicht angezeigt
bei dem Vorschlag mit Werten, werden fast alle Datensätze angezeigt und nicht der ausgewählte Bereich.
Der Felddatentyp in Tabelle1 steht auf Text. Wenn ich den Felddatentyp auf Datum/Uhrzeit ändere dann bekomme ich die Fehlermeldung 'Datentypen in Kriteriumausdruck unverträglich'. Bei dem Vorschlag mit Parametern bekomme ich die Fehlermeldung undefinierter Bezeichner: 'ParamByName' |
Re: SQL Datumsabfrage wird nicht angezeigt
Zitat:
Zitat:
Zitat:
|
Re: SQL Datumsabfrage wird nicht angezeigt
Kleine Korrektur für ADO-Queries:
Delphi-Quellcode:
Um die Parameter zu befüllen eignen sich die TDateTimePicker recht gut:
// manchmal "zicken" die Abfragen mit between, dann muss man ausweichen auf
// WHERE Datum >= :datum1 AND Datum <=:datum2 // ADOQuery1.SQL.Text := 'SELECT * FROM Tabelle1 where Datum between :datum1 and :datum2'; ADOQuery1.Parameters.ParamByName('datum1').asString := '30.05.2008'; ADOQuery1.Parameters.ParamByName('datum2').asString := '30.06.2008'; ADOQuery1.Open;
Delphi-Quellcode:
...
ADOQuery1.Parameters.ParamByName('datum1').AsDateTime := DateTimePickerVon.Date; ... |
Re: SQL Datumsabfrage wird nicht angezeigt
Hallo,
1. Welcher Datentyp wird verwendet (Date, DateTime, TimeStamp) ? Ist auch die Uhrzeit dabie,, sollte besser >= <= benutzt werden. 2. Vorsicht beim DateTimePicker. .Date enthält oft Datum und Uhrzeit, also Trunc() benutzen. Heiko |
Re: SQL Datumsabfrage wird nicht angezeigt
Nach der Korrektur der ADO-Queries bekomme ich die Fehlermeldung Undefinierter Bezeichner: 'asString'
oder
Delphi-Quellcode:
Undefinierter Bezeichner: 'AsDateTime'
ADOQuery1.Parameters.ParamByName('datum1').AsDateTime := DateTimePickerVon.Date;
|
Re: SQL Datumsabfrage wird nicht angezeigt
Hallo,
dann nimm halt .Value Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 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