Entwickler-Ecke
Datenbanken - Mit SQL String Zeitraum abfragen?
ibh_compucat - Mo 26.05.08 10:42
Titel: Mit SQL String Zeitraum abfragen?
Hallo,
Wie kann ich über eine Query einen Zeitraum abfragen (in einer Access Tabelle), bei dem ich nicht nur das Datum sondern auch die Zeit abfrage, nach Datum sähe das so aus (DATUMSTEMPEL ist ein TDateTime Feld in Tabelle):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| s := 'Select * FROM Tabelle ' + 'where DATUMSTEMPEL Between ' + #39 + '23.05.2008' + #39 + ' AND ' + #39 + '25.05.2008' + #39; try Form1.ADOQuery1.Close; Form1.ADOQuery1.SQL.Text := s; Form1.ADOQuery1.Open; except end; |
aber wie kann ich abfragen, welche Datensätze in der Zeit zwischen dem 23.05.2008 12:30:00 und dem 25.05.2008 9:00:00 liegen?
Gruß ibh_compucat
Moderiert von
Narses: Delphi-Tags hinzugefügtModeriert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Mo 26.05.2008 um 10:55
mkinzler - Mo 26.05.08 11:31
Verwende (SQL-)Parameter
ibh_compucat - Mo 26.05.08 11:57
Hallo Markus,
ich habe inzwischen ausprobiert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| HS := 'SELECT * FROM TABELLE ' + 'WHERE DATUMSTEMPEL BETWEEN ' + FormatDateTime('"#"mm"/"dd"/"yyyy hh:nn:ss"#"', Startpunkt) + ' AND ' + FormatDateTime('"#"mm"/"dd"/"yyyy hh:nn:ss"#"', Now); Form1.ADOQuery1.SQL.Text := HS; Form1.ADOQuery1.Open; |
aber da meckert er auch.
mit Parametern sähe das so aus ??????
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| HS := 'SELECT * FROM TABELLE ' + 'WHERE DATUMSTEMPEL BETWEEN ' + ':Startzeit AND :StoppZeit';
Form1.ADOQuery1.ParamByName('Startzeit').ASDateTime := Startpunkt; Form1.ADOQuery1.ParamByName('Stoppzeit').ASDateTime := Now; Form1.ADOQuery1.Open; |
Gruß ibh_compucat
Moderiert von
UGrohne: Beitragsformatierung überarbeitet.
mkinzler - Mo 26.05.08 12:13
Delphi-Quelltext
1:
| ADOQuery1.Parameter.ParamByName('Startzeit').Value := Startpunkt; |
ibh_compucat - Mo 26.05.08 12:20
Danke Markus, das wars!
Gruß ibh_compucat
ibh_compucat - Mo 26.05.08 21:05
Hallo,
ich hatte mich zufrüh gefreut, keiner meckert mehr, aber die Abfrage liefert leider alle Datensätze und nicht nur die in dem vorgegebenen Zeitraum. Hat jemand eine Idee?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| HS := 'SELECT * FROM TABELLE ' + 'WHERE DATUMSTEMPEL BETWEEN ' + ':Startzeit AND :StoppZeit ' + 'ORDER BY DATUMSTEMPEL';
Form1.ADOQuery1.ParamByName('Startzeit').Value := Startpunkt; Form1.ADOQuery1.ParamByName('Stoppzeit').Value := Now; Form1.ADOQuery1.Open; |
Gruß ibh_compucat
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!