AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zeit/Datumswert mit einer Tabelle vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit/Datumswert mit einer Tabelle vergleichen

Ein Thema von SilverMoonGirl · begonnen am 7. Dez 2006 · letzter Beitrag vom 21. Dez 2006
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Benutzerbild von SilverMoonGirl
SilverMoonGirl

Registriert seit: 21. Aug 2003
Ort: Berlin
160 Beiträge
 
Delphi 6 Professional
 
#1

Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 10:58
Datenbank: Paradox • Version: 9 • Zugriff über: Query
Aloha

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:
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;
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

Ich steh grad ein bisschen auf dem Schlauch ...
Simone
There is no dark side of the moon really.
Matter of fact it's all dark.
.::mein Blog::.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 11:33
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;
Andreas
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#3

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 11:40
Zitat von SilverMoonGirl:
...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"
Ich kann mir nicht vorstellen, dass ein DateTime-Feld in einer Tabelle so aussieht, aslo Datum und Zeit durch ein Komma getrennt... Sicher, dass der FeldTyp DateTime ist und nicht zufälligerweise ein String?? (nur mal so dumm gefragt...)

Zitat von SilverMoonGirl:
Wenn ich datumzeit in einen Datums/Zeit typ umwandle bekomme ich eine Fehlermeldung, dass es sich um ein ungültiges Datum handelt...
Die Fehlermedlung ist ja auch richtig weil das Komma zur Datum-Zeit-Abgrenzung da auch nicht reingehört
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 12:41
Wie sehen die Metadaten der Tabelle aus?
BTW. Ein Vergleich von Datumswerten als String ist keine gute Idee.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SilverMoonGirl
SilverMoonGirl

Registriert seit: 21. Aug 2003
Ort: Berlin
160 Beiträge
 
Delphi 6 Professional
 
#5

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 13:31
Zitat von raiguen:
Ich kann mir nicht vorstellen, dass ein DateTime-Feld in einer Tabelle so aussieht, aslo Datum und Zeit durch ein Komma getrennt... Sicher, dass der FeldTyp DateTime ist und nicht zufälligerweise ein String?? (nur mal so dumm gefragt...)
Ist aber so und ich bin mir sicher
Miniaturansicht angehängter Grafiken
tabelle_146.jpg  
Simone
There is no dark side of the moon really.
Matter of fact it's all dark.
.::mein Blog::.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 13:38
Wie sieht denn die Variable datumzeit aus, nachdem Du sie zusammengesetzt hast?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von SilverMoonGirl
SilverMoonGirl

Registriert seit: 21. Aug 2003
Ort: Berlin
160 Beiträge
 
Delphi 6 Professional
 
#7

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 13:44
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"
Simone
There is no dark side of the moon really.
Matter of fact it's all dark.
.::mein Blog::.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 14:08
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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von SilverMoonGirl
SilverMoonGirl

Registriert seit: 21. Aug 2003
Ort: Berlin
160 Beiträge
 
Delphi 6 Professional
 
#9

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 14:39
und was mach ich dann mit dem Komma ...
Simone
There is no dark side of the moon really.
Matter of fact it's all dark.
.::mein Blog::.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 7. Dez 2006, 14:53
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;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 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