Berechnete Zeit ausgeben

ncpschmidt

Benutzer
Beiträge
12
Guten Abend, Spezialisten.

Vorweg entschuldige ich mich für meine u. g. Darstellung. Ich habe leider die visuelle Exportfunktion noch nicht gefunden.

Folgende Tabelle:

id / userID / status / start / end
104 / 1 / start / 2016-02-08 21:39:03 / 2016-02-08 21:39:12
105 / 1 / break / 2016-02-08 21:39:12 / 2016-02-08 21:40:05
106 / 1 / work / 2016-02-08 21:40:05 / 2016-02-08 21:40:58
107 / 1 / break / 2016-02-08 21:40:58 / 2016-02-08 21:41:07
108 / 1 / end / 2016-02-08 21:41:07 / 2016-02-08 21:42:23
109 / 2 / start / 2016-02-08 21:41:54 / 2016-02-08 21:41:56
110 / 2 / break / 2016-02-08 21:41:56 / 2016-02-08 21:42:00
111 / 2 / work / 2016-02-08 21:42:00 / 2016-02-08 21:42:02
112 / 2 / break / 2016-02-08 21:42:02 / 2016-02-08 21:42:05
113 / 2 / end / 2016-02-08 21:42:05 / 0000-00-00 00:00:00
114 / 1 / start / 2016-02-08 21:42:23 / 0000-00-00 00:00:00

Ich möchte nun herausfinden, wie lange User 1 gearbeitet hat. Es müssten quasi die Zeiten, wie lange jeweils die Status Start und Work aktiv waren. Loggt sich der User ein (status = start), wird ein Datensatz erstellt mit start -> aktueller Timestamp. Wird der Status geändert (end oder break), wird zunächst der letzte Status der eingeloggten UserID geändert mit end -> aktueller Timestamp. Zusätzlich wird ein neuer Datensatz wie beim Einloggen, ohne end Spalte, generiert.

Ich verzweifle sehr an der Abfrage. Ich möchte als Ausgabe nur eine Zahl im Format date(H:i:s) erhalten. Ist meine Idee der Datenbankstruktur bzw. Funktionsweise denn so gesehen sinnvoll?
 

Anhänge

  • Bildschirmfoto 2016-02-08 um 22.15.37.png
    Bildschirmfoto 2016-02-08 um 22.15.37.png
    287,1 KB · Aufrufe: 4
Werbung:
Werbung:
Wird der Status geändert (end oder break), wird zunächst der letzte Status der eingeloggten UserID geändert mit end -> aktueller Timestamp. Zusätzlich wird ein neuer Datensatz wie beim Einloggen, ohne end Spalte, generiert.

Das ist deutlich aufwendiger wie dein vor paar Tagen gezeigtes Vorgehen, insbesondere sind viel mehr Operationen in der DB nötig.
 
Zurück
Oben