Thema: DB Abfrage mit Zeitoption

Moin.

Ich suche dringend nach einer Lösung, um meine DB Abfrage komplett zu machen.

Ich möchte, dass die Ausgabe, die ich in der Messagebox Uebertrag_zeit bekomme, als Abfrageoption in die DB Anfrage mit reinnehmen kann. Heisst, dass ich die Daten der letzten 2 Stunden haben möchte.
Hoffe, mir kann wer helfen.

 

 
 Sub GetResult()
 
 dim x
 dim Uebertrag_zeit
 
 uebertrag_zeit=DateAdd("h", -2, Now)
 msgbox(Uebertrag_zeit)
 
 x = 0
 Set cn = CreateObject("adodb.Connection")
 Set rs = CreateObject("adodb.Recordset")
 cn.Open "Provider=sqloledb;Persist Security Info=False;" _
 & "Data Source=notebook10Webfactory;Initial Catalog=WEBfactory;" _ 
 & "User Id=sa;Password=XXX" 
 
 rs.Open "SELECT AVG (LoggingValue) FROM LogReporting WHERE SignalID=5",cn
 x = rs.Fields(0).value
 
 rs.Close 
 cn.Close 
 Result = x
 
 
 End Sub
  
~~> Wenn Du Fragen hast, frag ruhig. Hab mir Google komplett ausgedruckt. <~~

2

Re: DB Abfrage mit Zeitoption

Hallo Peter,

so wie das aussieht, musst Du eigentlich nur Dein SQL erweitern und eine weitere WHERE-Klausel einbauen,
die auf Dein "uebertrag_zeit" losgeht.

Also sowas wie "AND uebertrag_zeit = <deine Berechnung der Daten>" (dazu kann ich leider wenig sagen, weil Du
uns vorenthälst wie Du die Daten speicherst und sich die "vergangene Zeit" berechnen soll <img src="/forum/images/graemlins/smile.gif" alt="" />

HTH, tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

3

Re: DB Abfrage mit Zeitoption

Hallo Tink.

Also die Zeitdaten in der Spalte LoggingTime stehen in diesem Format: 30.7.2003 14:40:33

Brauchst Du noch mehr Input?

~~> Wenn Du Fragen hast, frag ruhig. Hab mir Google komplett ausgedruckt. <~~

Re: DB Abfrage mit Zeitoption

Hi!

Die Spalte LoggingTime ist also vom Typ (var)char? Wenn du zeitlich sortieren willst, würde ich den Type datetime vorschlagen. Für das deutsche Datumsformat kannst du das dann noch umformatieren.

Mamphil

The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”

5

Re: DB Abfrage mit Zeitoption

@ Mamphil:

So wie das aussieht, sind das eher Timestamps <img src="/forum/images/graemlins/smile.gif" alt="" />
Wenn PeterB wirklich Varchars benutzt um Zeit/Datums-Werte zu speichern sollte er sich auf ein großes
Umschreiben gefasst machen *grins*

@ PeterB:
Okay, das wollte ich wissen, es sind also Timestamps.
Damit kannst Du dann (wenn Du sagen wir mal eine "2" als Übertrags-Zeit bekommst, in etwa folgenden Select
machen:
AND uebertrag_zeit >= <aktuelles Datum> - 2

Wobei ich jetzt wieder nicht weiß mit was für einer Datenbank Du arbeitest, von daher müsstest Du kurz
in der Datenbank-Doku nachlesen, was passiert, wenn Du "Timestamp - Zahl" rechnest. (Oracle geht hierbei von aus,
dass Du 1 Tag abziehst, wenn Du da also dann 2 Stunden haben willst, musst Du 2/24 rechnen z.B.)

HTH, tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

6

Re: DB Abfrage mit Zeitoption

Puh das wird ja immer doller.

Bei der Softwareinstalltion wurde mir gesagt, dass es eine MSDE Datenbank sei. Heisst, dass diese darin irgendwie implementiert ist. Kann keine Doku finden.
So langsam versteh ich aber auch, was Du da mit dem Select machen willst. Ich probier es gleich mal aus.

~~> Wenn Du Fragen hast, frag ruhig. Hab mir Google komplett ausgedruckt. <~~

7

Re: DB Abfrage mit Zeitoption

Dank eine entscheidenen Hinweis von Tink habe ich meinen Select perfekt. Und er funktioniert!

Damit alle was davon haben:

 "SELECT AVG (LoggingValue) FROM LogReporting WHERE SignalID=5" _
 & " AND datepart(dd, LoggingTime)=datepart(dd,DateAdd(dd, 0, getdate()))" _
 & " AND datepart(hh, LoggingTime)=datepart(hh,DateAdd(hh, -2, getdate()))"
 

Danke an Euch alle!
Werde Euch treu bleiben und mit Fragen und Wissen teilnehmen!

~~> Wenn Du Fragen hast, frag ruhig. Hab mir Google komplett ausgedruckt. <~~

8

Re: DB Abfrage mit Zeitoption

@Peter:

Gern geschehen <img src="/forum/images/graemlins/smile.gif" alt="" />

Kleine Anmerkung zu Deinem Select:
Was passiert mit Loggingzeiten aus unterschiedlichen Monaten und Jahren? ;-)

Beispiel:
Nehmen wir heute: 8.8.2003 und den 8.1.2000
die passen laut Deinem Select auch zusammen, hm?
Außerdem sehe ich keinen Sinn darin: "DateAdd(dd, 0, getdate())"... wozu 0 dazu zählen?
Das ist doch dann eben heute, also kannst Du das gleich weglassen und nur "datepart(dd, getdate())" machen, oder?

Gruß, tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

9

Re: DB Abfrage mit Zeitoption

Mhh da ist was dran. Werde wohl doch noch Monat und Jahr mit einbauen müssen. Danke für den Hinweis.

Die Loggingzeiten aus unterschiedlichen Monaten und Jahren werden mit Hilfe eines ActiveX Elements aus der DB gelesen und auf einer anderen Seite in Kennlinien dargestellt. Dort bekomme ich dann aktuelle Werte, von Tagen, Monaten und Jahren usw.

Gruß Peter

~~> Wenn Du Fragen hast, frag ruhig. Hab mir Google komplett ausgedruckt. <~~