AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Alle Datensätze finden, die kleine als akt. Zeit-60 min sind
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Datensätze finden, die kleine als akt. Zeit-60 min sind

Ein Thema von nachtstreuner60 · begonnen am 12. Mär 2008 · letzter Beitrag vom 12. Mär 2008
Antwort Antwort
nachtstreuner60

Registriert seit: 15. Jan 2007
Ort: Eisenach
54 Beiträge
 
Delphi 7 Professional
 
#1

Alle Datensätze finden, die kleine als akt. Zeit-60 min sind

  Alt 12. Mär 2008, 10:27
Hallo SQL-Experten,

ich greife über ZEOS auf Firebird DB zu, hier habe ich zwei Felder definiert :

1.) Datum als Date (01.01.2008)
2.) Zeit als String (14:30:05)

nun würde ich gerne mittels einer SQl-Abfrage alle Datensätze filtern, die
älter sind als die aktuelle Abfragezeit - 60 minuten.

ich weiss das sowas mit between geht, habe aber mal wieder einen Kurzschluss,
da ja vorher als Parameter die aktuelle Abfragzeit abzüglich 60 Minuten übergeben werden
muss.

Vielen dank schonmal für eure kreativen Anregungen

Gruß
Nachtstreuner60
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Alle Datensätze finden, die kleine als akt. Zeit-60 min

  Alt 12. Mär 2008, 10:30
Zitat:
Zeit als String (14:30:05)
Warum ?
Markus Kinzler
  Mit Zitat antworten Zitat
nachtstreuner60

Registriert seit: 15. Jan 2007
Ort: Eisenach
54 Beiträge
 
Delphi 7 Professional
 
#3

Re: Alle Datensätze finden, die kleine als akt. Zeit-60 min

  Alt 12. Mär 2008, 10:31
Hallo mKinzler,

wurde von meinen Chefs so vorgegeben, stammt noch aus alten dbase Zeiten.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Alle Datensätze finden, die kleine als akt. Zeit-60 min

  Alt 12. Mär 2008, 10:34
Das ist aber ein ganz ganz schlechte Idee. So musst du zuerst den String-Wert zerlegen um diese Prüfen zu können. Hier würde ich an deiner Stelle nochmal mit deinem Chef reden.
Markus Kinzler
  Mit Zitat antworten Zitat
nachtstreuner60

Registriert seit: 15. Jan 2007
Ort: Eisenach
54 Beiträge
 
Delphi 7 Professional
 
#5

Re: Alle Datensätze finden, die kleine als akt. Zeit-60 min

  Alt 12. Mär 2008, 10:39
Hallo mKinzler,

wie würde das aussehen, wenn ich ein zusätzliches Feld als Time einfüge, und die bisherigen Zeitwerte(string) per Programm in einen Time-Wert umwandle?

Geht so was überhaupt so einfach?

Gruß nachtstreuner60

Hab gleich mal einen termin bei meinem Chefi..
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Alle Datensätze finden, die kleine als akt. Zeit-60 min

  Alt 12. Mär 2008, 10:48
Zitat:
Wie würde das aussehen, wenn ich ein zusätzliches Feld als Time einfüge, und die bisherigen Zeitwerte(string) per Programm in einen Time-Wert umwandle?
Musst du wohl so machen.
Markus Kinzler
  Mit Zitat antworten Zitat
nachtstreuner60

Registriert seit: 15. Jan 2007
Ort: Eisenach
54 Beiträge
 
Delphi 7 Professional
 
#7

Re: Alle Datensätze finden, die kleine als akt. Zeit-60 min

  Alt 12. Mär 2008, 11:21
Hallo SQL-Experten,

ich habe also jetzt ein Datumsfeld Typ Date
und ein Zeitfeld Typ Time

habe auch ein paar Testdatensätze drin.

Wie würde jetzt die Abfrage aussehen ?

Select Datum,Zeit from Bestell where Datum =< :ddatum and ZEIT =< :dZEIT
Delphi-Quellcode:
with zQueryIDOC do begin
    zQUeryIDOC.Active := false;
    dSQL := 'Select Datum,ZEIT from BESTELL where (DATUM =< :dDATUM) '+
     'and (ZEIT =< :dZEIT) order by SATZID';
    zQueryIDOC.SQL.Text := dSQL;
    ZQUERYIDOC.ParamByName('dDATUM').AsDATE := date;
    ZqueryIDOC.ParamByName('dZEIT').AsTime := IncMinute(time,-60);

    zQueryIDOC.ExecSQL;
    zQUeryIDOC.Active := true;
   end;
Hier erhalte ich aber eine Fehlermeldung !
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Alle Datensätze finden, die kleine als akt. Zeit-60 min

  Alt 12. Mär 2008, 11:29
Welche FB-Version?
In FB < 2.1 würde ich eine UDf heranziehen z.B. F_AGEINHOURS der FreeAdHocUDF sonst DATEDIFF
Markus Kinzler
  Mit Zitat antworten Zitat
nachtstreuner60

Registriert seit: 15. Jan 2007
Ort: Eisenach
54 Beiträge
 
Delphi 7 Professional
 
#9

Re: Alle Datensätze finden, die kleine als akt. Zeit-60 min

  Alt 12. Mär 2008, 13:44
Danke mKinzler für den Hinweis,

habe mit UDF noch nichts zu tun gehabt, werde mich aber mit dem Thema mal genauer beschäftigen.

Habe aber nun zu meinem Problem folgende Lösung gefunden :
Delphi-Quellcode:
    zroUNQUIT.Active := false;
    dSQL := 'Select * from BESTELL where (DATUM < :dDATUM and QUITTUNG = :dQuit) '+
     'or ( Datum = :dDATUM and ZEIT <= :dZEIT and QUITTUNG = :dQUIT )'+
     ' order by SATZID';
    zroUNQUIT.SQL.Text := dSQL;
    zroUNQUIT.ParamByName('dDATUM').AsDATE := date;
    zroUNQUIT.ParamByName('dZEIT').AsTime := IncHour(time,-dWarten);
    zroUNQUIT.ParamByName('dQUIT').AsInteger := 0;
    zroUNQUIT.ExecSQL;
    zroUNQUIT.Active := true;
dWarten hat den Wert 2, hiermit werden mir alle Datensätze angezeigt, die
a) älter als zwei Stunden zum Abfragezeitpunkt sind und die
b) generell vom Vortag (zeitunabhängig) sind

dQuit hat nur einen Status 0 oder 1

IncHour(time,-dWarten) zieht von der aktuellen Zeit zwei Stunden ab.

Stellt diese Lösung einen passablen Weg gegenüber UDF dar ?

mfg
nachtstreuner60
  Mit Zitat antworten Zitat
Antwort Antwort


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