Announcement

Collapse
No announcement yet.

Dringend: aus TimeStamp die Dauer berechnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dringend: aus TimeStamp die Dauer berechnen

    Ich benötige eine Möglichkeit aus C++ Builder heraus eine Auswertung von Daten aus einer Datenbank zu erstellen. Die Daten werden in drei Tabellen gehalten. (T_Stationen, T_Kanaele und T_Erfassung) In der Tabelle T_Stationen werden, wie der Name schon sagt, die Stationen einer Produktionsanlage eingetragen. In der Tabelle Kanaele sind die einzelnen Ereignisanaele jeder Station gespeichert. In der Tabelle T_Erfassung werden über die Zeit alle Änderungen der Ereignissignale gespeichert.

    Um dies jetzt aber brauchbar auszuwerten benötige ich eine Funktion oder so, die mir die Zeiten so zusammenrechnet, dass ich die Dauer aller "Hi-Signale" und die Dauer aller "Low-Signale" innerhalb eines Zeitraums berechnen kann.

    Meine Abfrage sieht zur Zeit noch folgendermaßen aus:

    <code>
    select k.Text,<br>
    (select count(T_Erfassung.Wert)<br>
    from T_Erfassung<br>
    where T_Erfassung.FID_Kanal = k.ID_Kanal and<br>
    T_Erfassung.Wert = 1<br>
    group by T_Erfassung.Wert) wahr,<br>
    (select count(T_Erfassung.Wert)<br>
    from T_Erfassung<br>
    where T_Erfassung.FID_Kanal = k.ID_Kanal and<br>
    T_Erfassung.Wert = 0<br>
    group by T_Erfassung.Wert) falsch<br>
    from T_Stationen s, T_Kanaele k<br>
    where s.SNr = 1 and<br>
    k.FID_Station = s.ID_Station<br>
    group by k.Text;<br>
    </code>

    Hat irgendjemand soetwas schoneinmal gemacht?! Oder hat jemand eine Ahnung, wie man das Problem lösen kann.

  • #2
    Hi<br>
    probier mal eine berechnung mit CAST<br>
    CAST(1440*(CAST(TIMESTAMP1 AS DATE) - CAST(TIMESTAMP2 AS DATE))as Integer);<br>
    die umrechnung kann auch in float oder mit größerer genauigkeit erfolgen.<br>
    1440 = 24 std.* 60 min<br><br>
    Gruß<br>
    Andrea

    Comment

    Working...
    X