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 3 von 5     123 45      
Benutzerbild von SilverMoonGirl
SilverMoonGirl

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

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 11. Dez 2006, 15:09
Hallo,
die beiden Sachen habe ich geändert, und der Compiler meckert beim "Open". Also wird was in der Abfrage nicht stimmen
Simone
There is no dark side of the moon really.
Matter of fact it's all dark.
.::mein Blog::.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#22

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 11. Dez 2006, 15:13
Wenn du den Fehler nicht selbst findest musst du mal das DDL Statement für die Tabelle zeigen.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#23

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 11. Dez 2006, 15:18
Hallo,

Dein Feld dattimne ist vom Typ TimeStamp fasst vielleicht nur die beiden Werte zusammen.
Warum machst du das nicht auch so ?

Ich habe mal auf die Schnelle eine Tabelle angelegt.

SQL-Code:
create table test(id integer, dattime timestamp, primary key(id))
insert into test(dattime) values('1.12.2006 12:00:00')
oder Delphi per TTable (ihhh )
Delphi-Quellcode:
var
  tdtDate,
  tdtTime : TDateTime;

FieldByName('dattime').AsDateTime:= tdtDate+tdtTime.

Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von SilverMoonGirl
SilverMoonGirl

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

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 12. Dez 2006, 12:40
Zitat von marabu:
Wenn du den Fehler nicht selbst findest musst du mal das DDL Statement für die Tabelle zeigen.
Muss ich erst gucken, die ist nicht von mir

@hoika
ich habe es so probiert, allerdings bleibt es trotzdem bei der Fehlermeldung, dass die Typen nicht übereinstimmen

Das entpuppt sich ja schwerer als erwartet
Simone
There is no dark side of the moon really.
Matter of fact it's all dark.
.::mein Blog::.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#25

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 12. Dez 2006, 12:51
Hallo,

dann nimm mal AsFloat statt AsDateTime.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von SilverMoonGirl
SilverMoonGirl

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

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 12. Dez 2006, 13:24
Es ändert sich leider trotzdem nichts, die Fehlermeldung ist die gleiche
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 MacNuke
MacNuke

Registriert seit: 19. Mai 2004
Ort: Rostock
42 Beiträge
 
#27

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 12. Dez 2006, 14:24
Hi.

Ich hab die Datenbank verbrochen, also wenn's um die Datenbank an sich geht, bitte mich fragen. Ja, ich weiß, ich hätte es auch anders machen können (Datum/Zeit getrennt und den "_" bei BackUpTime hätte ich auch weglassen können, aber es sollte halt schnell gehen), aber nun ist zu spät. Sorry, Simone

Nunja. Also der Tabellen-Typ ist Paradox 7. Nur damit keine Verwirrung auftritt. Wir arbeiten hier zwar mit Paradox 9, aber das nutzt im Endeffekt auch nur die Tabellen vom 7er.

So. Zum Problem an sich.

Bei jeder Änderung an den Daten werden diese noch mal weggespeichert und mit diesem jenen Zeitstempel versehen, damit man diese identifizieren kann. Nun soll SilverMoonGirl ein Paradox-externes Programm schreiben (jetzt halt in Delphi), welches diese Daten bei Bedarf wieder zurückholen kann. Der Kunde wählt quasi Vorgangsnummer, Datum und Uhrzeit und dann soll sie es raussuchen.

Da gibt's jetzt halt das Problem das die Abfrage nicht funktionieren will.

Von den Delphi-Komponenten hab ich jetzt leider nicht so die Ahnung. Da müsst ihr euch wieder an SilverMoonGirl wenden

Jetzt unabhängig von dem Problem. Wie fragt man denn einen DateTime-Wert richtig ab? Jetzt auch noch unabhängig davon das er erst zusammengesetzt werden muss?

Danke.
No RISC, no Fun.

Dual PowerMac G4 1,25Ghz, 1,25 GB DDR-RAM, Radeon9800Pro, OSX.4.X
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#28

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 12. Dez 2006, 14:51
Hallo,

wie ihr beiden seht, gibt es nur Ärger.
Ich würde die Struktur ändern und per Programm-Update,
die alten Daten ersetzen.

Abfrage ist wegen dem zusammengestezten Feld extrem schwierig,
normalerweise kann man eine Date / Time Feld per Extract
(z.B. Extract(Year From DateField)) auseinandernehmen,
das läuft aber ohne Index, ist also saulahm.

Poste doch mal eine Bsp-Tabelle
mit 2/3 Datensätzen.


Heiko
Heiko
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#29

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 12. Dez 2006, 15:17
Hallo Leute,

grundsätzlich muss bei der Abfrage über LocalSQL unterschieden werden, ob man per Parameter abfragt oder nicht:

Delphi-Quellcode:
begin
  with Query do
  begin
    SQL.Text := 'SELECT * FROM T1 WHERE ts = :ts';
    Params.ParamByName('ts').AsDateTime := StrToDate('2006-12-21') + StrToTime('12:08:04');
    Open;
  end;

  with Query do
  begin
    SQL.Text := 'SELECT * FROM T1 WHERE CAST(ts AS TIME) = ''12:08:04'' '
              + 'AND CAST(ts AS DATE) = ''21.12.2006'' ';
    Open;
  end;
end;
Die Datum- und Zeit-Literale bei der Parameterbesetzung richten sich nach den Ländereinstellungen des Benutzers. Die Anzeige von von Date- und Time-Feldern über die BDE erfolgt nach den gleichen Regeln, TimeStamp-Felder (@) werden im Format "TIME, DATE" angezeigt. Allerdings müssen die Literale bei der LocalSQL-Abfrage gemäß den Vorgaben der BDE-Konfiguration erfolgen. Diese unterscheidet sich oft von den Systemeinstellungen.

Ansonsten gilt immer noch das, was ich in Beitrag #12 geschrieben habe.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von MacNuke
MacNuke

Registriert seit: 19. Mai 2004
Ort: Rostock
42 Beiträge
 
#30

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 12. Dez 2006, 15:17
Zitat von hoika:
wie ihr beiden seht, gibt es nur Ärger.
Ich würde die Struktur ändern und per Programm-Update,
die alten Daten ersetzen.
Nee. Muss doch aus so gehen. Zur Not wird das Programm eher nicht mehr in Delphi gemacht, sondern wieder in Paradox Also von daher

Zitat von hoika:
Abfrage ist wegen dem zusammengestezten Feld extrem schwierig,
normalerweise kann man eine Date / Time Feld per Extract
(z.B. Extract(Year From DateField)) auseinandernehmen,
das läuft aber ohne Index, ist also saulahm.
Geschwindigkeit ist eher nebensächlich. Es geht doch im Prinzip nur ganz einfach darum einen DateTime-Wert in einer Tabelle mit einer DateTime-Spalte zu suchen... warum ist das denn so schwer?

Zitat von hoika:
Poste doch mal eine Bsp-Tabelle
mit 2/3 Datensätzen.
Ist ne Tabelle mit ner DateTime-Spalte. Der Rest ist so gesehen egal, da sie die anderen Tabellen anders aussehen. Was gleich ist, ist die "_BackUpTime"-Spalte.

@marabu

OK. Dann testen wir es morgen mal mit den BDE-Konfig-Einstellungen (die fassen wir so nie an, sollten also Standard sein).
No RISC, no Fun.

Dual PowerMac G4 1,25Ghz, 1,25 GB DDR-RAM, Radeon9800Pro, OSX.4.X
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


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 02:25 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