Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   zeitintervall abfrage (https://www.delphipraxis.net/187626-zeitintervall-abfrage.html)

MatthiasK 16. Dez 2015 11:45

Datenbank: Firebird • Version: 2.5 • Zugriff über: Zeos

zeitintervall abfrage
 
Moin,

bei meinem Wiedereinstieg in die Programmierung häng ich erwartungsgemäß an einem Problem fest.

und zwar hab ich mir aus meiner datenbank per query eine Datenmenge gezogen, welche ich nun systematisch durchgehen will, um halt meinen Mist damit zu machen.

Und zwar liefert mir die DB ein Feld mit, welches ein TimeStamp ist. ich möchte herausfinden, wieviele Datensätze Pro stunde an dem Tag in die DB geschrieben wurden und das Stundenweise in der vollen Stunde, bishin zur letzten Stunde, also Datnsatz dieses Tages.

Erschwerend kommt hinzu, das ich Pausen in der Tabelle in der jeweiligen Stunde finden muss, welche größer als 10 Minuten sind. Und das muss dan entsprechend ausgewertet werden als produktivzeit und Unproduktiv.

also angenommen, ich habe folgende ergebnisse:
16.12.2015 7:33
16.12.2015 7:33
16.12.2015 7:34
16.12.2015 7:36
16.12.2015 7:48
16.12.2015 7:48
16.12.2015 7:48
16.12.2015 7:49
16.12.2015 7:50
16.12.2015 7:53

als Ergebniss müsste dann kommen:
Begin Arbeitszeit 7:33
Arbeitszeit Stunde 7: 27 Minuten
Produktivzeit Stunde 7: 15 Minuten
Unproduktivzeit Stunde 7: 12 Minuten

Und das halt für jede Stunde des Tages, welcher in den Ergebnissen ist.
geordnet sind die datensätze über den Zeitstempel.

Mein Gedankengang war folgender: per findfirst auf den ersten Ds, per HourOf die stunde rausfinden. Aber wie geh ich weiter vor? Ist das überhaupt sinnvoll?

haentschman 16. Dez 2015 11:49

AW: zeitintervall abfrage
 
Moin...:P
Zitat:

wieviele Datensätze Pro stunde an dem Tag in die DB geschrieben wurden
Wer schreibt die rein? Wie ist der Timestamp zu interpretieren? Durch welchen Algorithmus trennst du produktiv und unproduktiv?
Merkst du? Ich habe es nicht wirklich verstanden wie du das meinst bzw. was das Ergenbis sein soll...8-)

p80286 16. Dez 2015 12:03

AW: zeitintervall abfrage
 
Zitat:

Zitat von MatthiasK (Beitrag 1324607)
als Ergebniss müsste dann kommen:
Begin Arbeitszeit 7:33
Arbeitszeit Stunde 7: 27 Minuten
Produktivzeit Stunde 7: 15 Minuten
Unproduktivzeit Stunde 7: 12 Minuten

Alleine hierbei kräuseln sich mit die Zehennägel.
Wenn die erste in der DB protokollierte Aktion um 7:33 Uhr statt fand, heißt das noch längst nicht, das die Arbeitszeit zu diesem Zeitpunkt begann. Ebenso scheint mir die Aufteilung in Produktiv und Unproduktiv sagen wir mal willkürlich zu sein.
Ein böser Mensch würde da jetzt im Hintergrund eine Batchdatei installieren, die alle 53 Sekunden ein und den selben Datensatz mit einer Änderung abspeichert. Das ist Fleiß, der eine enorme Unproduktivität nach sich zieht.

Gruß
K-H

mkinzler 16. Dez 2015 12:13

AW: zeitintervall abfrage
 
Ich würde wenn möglich die Datenbankstruktur ändern bzw. eine automatische Überführung der Daten durchführen (einmalig + fortlaufend Trigger) welche die Daten dann in eine (brauchbare und) auswertbare Form bringt.

MatthiasK 16. Dez 2015 13:06

AW: zeitintervall abfrage
 
ok, etwas unglücklich formuliert mit der Arbeitszeit.

an der DB kann ich nix ändern, ich bekomm die so als auszug. Das ist keine Auswertung, welche einen Mitarbeiter überwacht. es geht im speziellen darum, das "unproduktive zeiten" ortswechsel sind. die datensätze werden von einem messegrät geliefert und die häufigkeit ist relativ.

mit arbeitszeitbeginn meinte ich begin der messungen. arbeitszeit begin ist immer gleich für die MA.

theoretisch kann ich mir ne dummy db anlegen, und darin die daten aufschlüsseln. aber ich bin einfach auch schon ne weile raus und häng halt da an einer blockade.

Wie könnte ich das sinnvoll lösen, ohne die struktur der db anfassen zu müssen?

was ist gemeint mit: "wie ist der timestamp zu interpretieren?"?
Ich habe (noch?) keinen algorythmus... ich wüsste auch nicht gleich auf anhieb, wie ich sowas realisieren kann.

mkinzler 16. Dez 2015 13:15

AW: zeitintervall abfrage
 
An einem (einzigen) Timestamp kannst Du ja nicht sehen, was er bedeutet (Anfang Produktivphase oder Ende Produktivphase=Beginn Pause). Dies ergibt sich nur im Kontext aller Datensätze eines Tages ( Anmeldung/Abmeldung alternierend).
Deshalb birgt eine Betrachtung der Werte einer Stunde ein hohes Risiko komplett falsch zu sein ( Produktivphasen und Pausen vertauscht).

MatthiasK 16. Dez 2015 13:27

AW: zeitintervall abfrage
 
hm, ich verstehe.

Aber irgendwie sollte dies doch zu schaffen sein. gedanklich kann ich ja die pausen auch per blick auf die daten finden. also sollte dies auch per programm möglich sein. mir ist die ganze zeit, als würde ich irgendwas übersehen bzw. nicht so richtig bedenken. mir liegt die auswertung sozusagen auf der zunge.

irgendwie kotzt mich das grad an...

Jumpy 16. Dez 2015 14:02

AW: zeitintervall abfrage
 
Zitat:

Zitat von MatthiasK (Beitrag 1324623)
gedanklich kann ich ja die pausen auch per blick auf die daten finden.

Echt? Ich nicht. Ich weiß nicht, wie du aus den gegebenen Daten Pausen usw. ausliest. Wie kommst du auf:

Begin Arbeitszeit 7:33
Arbeitszeit Stunde 7: 27 Minuten
Produktivzeit Stunde 7: 15 Minuten
Unproduktivzeit Stunde 7: 12 Minuten

baumina 16. Dez 2015 14:14

AW: zeitintervall abfrage
 
Zitat:

Zitat von Jumpy (Beitrag 1324626)
Zitat:

Zitat von MatthiasK (Beitrag 1324623)
gedanklich kann ich ja die pausen auch per blick auf die daten finden.

Echt? Ich nicht. Ich weiß nicht, wie du aus den gegebenen Daten Pausen usw. ausliest. Wie kommst du auf:

Begin Arbeitszeit 7:33
Arbeitszeit Stunde 7: 27 Minuten
Produktivzeit Stunde 7: 15 Minuten
Unproduktivzeit Stunde 7: 12 Minuten

Man muss es anders lesen, hab auch ne Weile gebraucht, dann ist es eine Art Gruppenwechsel.

Begin Arbeitszeit = 7:33 Uhr
Arbeitszeit in Stunde 7 entspricht 27 Minuten
Produktivzeit in Stunde 7 entspricht 15 Minuten
Unproduktivzeit in Stunde 7 entspricht 12 Minuten

jobo 16. Dez 2015 14:21

AW: zeitintervall abfrage
 
Zitat:

Zitat von baumina (Beitrag 1324628)
Man muss es anders lesen, hab auch ne Weile gebraucht, dann ist es eine Art Gruppenwechsel.

Begin Arbeitszeit = 7:33 Uhr
Arbeitszeit in Stunde 7 entspricht 27 Minuten
Produktivzeit in Stunde 7 entspricht 15 Minuten
Unproduktivzeit in Stunde 7 entspricht 12 Minuten

So hab ich das auch interpretiert. Mit SQL wäre es wohl relativ harmlos über Window Functions. Aber die gibt's erst in fb 3.0.

Was mir noch fehlt ist der "Datenrahmen". Also was kommt vor 7.33 und nach 7:53? Und welche Intervalle werden generell abgefragt? Immer nur ein bestimmter Tag?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 Uhr.
Seite 1 von 3  1 23      

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