![]() |
Datenbank: Paradox • Version: 9 • Zugriff über: Query
Zeit/Datumswert mit einer Tabelle vergleichen
Aloha :hi:
Ich hoffe ich kann euch mein Problem halbwegs verständlich machen... Ich habe eine Tabelle mit einer Spalte _BackUpTime vom Typ DateTime, deren Inhalt so aussieht "15:11:45, 17:11:2006" Dies habe ich jeweils in Zeit und Datum getrennt und zur weiteren Bearbeitung als String umgewandelt. Jetzt habe ich beide wieder zusammengefügt und wollte sie wieder mit der Datenbank zu vergleichen.
Delphi-Quellcode:
Wenn ich datumzeit in einen Datums/Zeit typ umwandle bekomme ich eine Fehlermeldung, dass es sich um ein ungültiges Datum handelt. Lass ich datumzeit als String, bekomme ich zwar keine Fehlermeldung aber auch keine Ergebnisse :gruebel:
datumzeit:= DBGZeit.SelectedField.AsString + ', '+ DBGdatum.SelectedField.AsString ;
with DBmodul.QcopyTable do begin Close; SQL.Clear; SQL.Add('SELECT * FROM Aufdate WHERE AuftragNr = '+DBGrid1.SelectedField.AsString + ' AND ("_BackUpTime" = :datzeit)'); ParamCheck:=true; ParamByName('datzeit').AsDateTime:= StrToDateTime(datumzeit); Open; end; Ich steh grad ein bisschen auf dem Schlauch ... |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Du brauchst auf jeden Fall ein Datumsformat, dass StrToDateTime verarbeiten kann.
Delphi-Quellcode:
// zuerst das Datum dann die Zeit getrennt durch ein Leerzeichen
datumzeit:= DBGdatum.SelectedField.AsString + ' '+ DBGZeit.SelectedField.AsString; |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Zitat:
Zitat:
|
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Wie sehen die Metadaten der Tabelle aus?
BTW. Ein Vergleich von Datumswerten als String ist keine gute Idee. |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Wie sieht denn die Variable datumzeit aus, nachdem Du sie zusammengesetzt hast?
|
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Genauso wie der Wert in der Tabelle, also um beim Beispiel von oben zu bleiben, sieht die Variable auch so aus "15:11:45, 17:11:2006"
|
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Solange TimeSeparator und DateSeparator gleich sind, wirst Du mit den automatischen Umwandlungsfunktionen (StrTo...) nicht weit kommen. Du müsstest Dir das Datum aus dem String selber zusammenbasteln.
|
Re: Zeit/Datumswert mit einer Tabelle vergleichen
und was mach ich dann mit dem Komma ... :gruebel:
|
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Also auf die harte Tour könnte man es so machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var datumzeit : string; hh, nn, ss, yy, mm, dd : Word; begin // 1 // 12345678901234567890 datumzeit := '15:11:45, 17:11:2006'; hh := strtoint(copy(datumzeit, 1, 2)); nn := strtoint(copy(datumzeit, 4, 2)); ss := strtoint(copy(datumzeit, 7, 2)); dd := strtoint(copy(datumzeit,11, 2)); mm := strtoint(copy(datumzeit,14, 2)); yy := strtoint(copy(datumzeit,17, 4)); // Das Ergebnis des EncodeDateTime dann in den SQL-Parameter schreiben ShowMessage(DateTimeToStr(EncodeDateTime(yy, mm, dd, hh, nn, ss, 0))); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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