![]() |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Hallo,
die beiden Sachen habe ich geändert, und der Compiler meckert beim "Open". Also wird was in der Abfrage nicht stimmen :gruebel: |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Wenn du den Fehler nicht selbst findest musst du mal das DDL Statement für die Tabelle zeigen.
|
Re: Zeit/Datumswert mit einer Tabelle vergleichen
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:
oder Delphi per TTable (ihhh ;))
create table test(id integer, dattime timestamp, primary key(id))
insert into test(dattime) values('1.12.2006 12:00:00')
Delphi-Quellcode:
var
tdtDate, tdtTime : TDateTime; FieldByName('dattime').AsDateTime:= tdtDate+tdtTime. Heiko |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Zitat:
@hoika ich habe es so probiert, allerdings bleibt es trotzdem bei der Fehlermeldung, dass die Typen nicht übereinstimmen :cry: Das entpuppt sich ja schwerer als erwartet :| |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Hallo,
dann nimm mal AsFloat statt AsDateTime. Heiko |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Es ändert sich leider trotzdem nichts, die Fehlermeldung ist die gleiche :-(
|
Re: Zeit/Datumswert mit einer Tabelle vergleichen
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 :kiss: 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. :) |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
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 |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Hallo Leute,
grundsätzlich muss bei der Abfrage über LocalSQL unterschieden werden, ob man per Parameter abfragt oder nicht:
Delphi-Quellcode:
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.
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; Ansonsten gilt immer noch das, was ich in Beitrag #12 geschrieben habe. Freundliche Grüße |
Re: Zeit/Datumswert mit einer Tabelle vergleichen
Zitat:
Zitat:
Zitat:
@marabu OK. Dann testen wir es morgen mal mit den BDE-Konfig-Einstellungen (die fassen wir so nie an, sollten also Standard sein). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 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