php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 08-05-2007, 12:59
knoebi
 Newbie
Links : Onlinestatus : knoebi ist offline
Registriert seit: May 2007
Beiträge: 23
knoebi ist zur Zeit noch ein unbeschriebenes Blatt
Post [Funktion] Zeit berechnen zwischen Zeilen einer SQL-Abfrage

Hallo Zusammen,

bin wieder auf ein für mich unlösbares Problem gestoßen. Ich möchte den Zeitraum zwischen Beginn und Ende eines Arbeitstages berechnen.
Und zwar:

Habe aus einer SQL-Abfrage mehrere Einträge:

Beispiel:
Datum|Uhrzeit|Text
02.05.2007|05:57|Beginn
02.05.2007|10:01|Pause
02.05.2007|13:08|Pause
02.05.2007|15:57|Ende

Es kann pro Tag mehrer Schichtbeginne und Schichtenden geben. Wie kann ich jetzt per PHP ermitteln, das ich immer den ersten Eintrag eines Tages und den letzten eines Tages nehme und daraus die Zeit ermittle.
Mit Zitat antworten
  #2 (permalink)  
Alt 08-05-2007, 13:03
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. die tabellenstruktur wäre interessant.
2. was soll "pause" bedeuten? warum nicht "pause anfang" und "pause ende"?
3. gibt es die sicherheit, dass es immer die einträge "beginn" und "ende" geben wird? dann könntest du dich ja an denen richten.
Mit Zitat antworten
  #3 (permalink)  
Alt 08-05-2007, 13:07
knoebi
 Newbie
Links : Onlinestatus : knoebi ist offline
Registriert seit: May 2007
Beiträge: 23
knoebi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es ist keine eigensentwickelte DB - ich muss die Daten so nehmen wie sie da sind.

Es wird eigentlich nur das Pausenende in die DB gemeldet mit der Zeit in Minuten (extra Spalte "Zeit") ermittelt vom Ende der letzten Tätigkeit.

Noch mal ein Beispiel:
Uhrzeit - Datum - Zeit - Tätigkeit1
Uhrzeit - Datum - Zeit - Tätigkeit2
Uhrzeit - Datum - Zeit - Tätigkeit3
Uhrzeit - Datum - Zeit - Pause
Uhrzeit - Datum - Zeit - Tätigkeit4
Uhrzeit - Datum - Zeit - Tätigkeit5
Uhrzeit - Datum - Zeit - Schichtende
Mit Zitat antworten
  #4 (permalink)  
Alt 08-05-2007, 13:09
knoebi
 Newbie
Links : Onlinestatus : knoebi ist offline
Registriert seit: May 2007
Beiträge: 23
knoebi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es kann pro Tag auch mehrmals ein Schichtbeginn und Ende geben.
Mit Zitat antworten
  #5 (permalink)  
Alt 08-05-2007, 13:09
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

die fragen eins und drei blieben unbeantwortet.
Mit Zitat antworten
  #6 (permalink)  
Alt 08-05-2007, 13:13
knoebi
 Newbie
Links : Onlinestatus : knoebi ist offline
Registriert seit: May 2007
Beiträge: 23
knoebi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Tabellenstruktur:

ERFZEIT (decimaltime)
ZEIT (int)
ARBEITSGANG (text)
PERSONALNR (int)
ERFDATUM (date)
Mit Zitat antworten
  #7 (permalink)  
Alt 08-05-2007, 13:19
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

...und drei?
Mit Zitat antworten
  #8 (permalink)  
Alt 08-05-2007, 13:21
knoebi
 Newbie
Links : Onlinestatus : knoebi ist offline
Registriert seit: May 2007
Beiträge: 23
knoebi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

zu 3.) ja, wobei das auch Nachtschichten betreffen könnte
Mit Zitat antworten
  #9 (permalink)  
Alt 08-05-2007, 13:25
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und was heißt das? dass der arbeitstag nach mitternacht endet?
Mit Zitat antworten
  #10 (permalink)  
Alt 08-05-2007, 13:27
knoebi
 Newbie
Links : Onlinestatus : knoebi ist offline
Registriert seit: May 2007
Beiträge: 23
knoebi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das heisst, das man nicht immer eine Schicht im Bereich von 00:00 - 23:59 hat, sondern dann zwei Tage berührt werden!
Mit Zitat antworten
  #11 (permalink)  
Alt 08-05-2007, 13:27
knoebi
 Newbie
Links : Onlinestatus : knoebi ist offline
Registriert seit: May 2007
Beiträge: 23
knoebi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

23:59 natürlich!
Mit Zitat antworten
  #12 (permalink)  
Alt 08-05-2007, 13:32
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von knoebi
Das heisst, das man nicht immer eine Schicht im Bereich von 00:00 - 23:59 hat, sondern dann zwei Tage berührt werden!
Auch für diesen Fall ist bei deiner Fragestellung wieder nicht definiert, wie dann verfahren werden soll.

Wird dann Arbeitstag 1 implizit für beendet, und der nächste implizit für begonnen erklärt?
Oder soll der "Arbeitstag" über Kalendertagsgrenzen hinausgehen (wenn ja, wie?)


All das sind Fragen, die eigentlich schon im Vorfeld gestellt und auch beantwortet worden sein müssten.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #13 (permalink)  
Alt 08-05-2007, 13:37
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das wird zu komplex für eine abfrage...
ermittle mit einer query erst mal alle einträge eines tages, laufe sie dann durch (ich nehme an, mit php), finde den ersten eintrag mit "beginn", laufe zum nächsten eintrag "ende", ermittle die zeitdifferenz. wurde "ende" nicht gefunden, muss man die einträge vom nächsten tag ermitteln, weil die nachtschicht am nächsten tag endete.
Mit Zitat antworten
  #14 (permalink)  
Alt 08-05-2007, 13:38
knoebi
 Newbie
Links : Onlinestatus : knoebi ist offline
Registriert seit: May 2007
Beiträge: 23
knoebi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hier noch mal ein Auszug aus einer Abfrage:

ERFDATUM ERFZEIT PERSONAL_EXTNR KA_BEZ ZEIT KA_NR AUFTRAGSNR
39204 0.2485763888907 58 Schichtbeginn 0 9197 90-0001
39204 0.4176157407418 58 Pause 18 9195 072002
39204 0.5475810185162 58 Pause 35 9195 072002
39204 0.7485879629603 58 Schichtende 0 9198 90-0001
39205 0.3405555555582 58 Schichtbeginn 0 9197 90-0001
39205 0.5829050925894 58 Schichtende 0 9198 90-0001
39205 0.5830092592586 58 Schichtbeginn 0 9197 90-0001
39205 0.6715856481459 58 Schichtende 0 9198 90-0001
39206 0.3430555555532 58 Schichtbeginn 0 9197 90-0001
39206 0.4419560185197 58 Pause 24 9195 072002
39206 0.5890393518493 58 Pause 25 9195 072002
39206 0.6874421296306 58 Schichtende 0 9198 90-0001
39209 0.3531481481477 58 Schichtbeginn 0 9197 90-0001
39209 0.4218981481462 58 Pause 27 9195 072002
39209 0.5401851851856 58 Pause 18 9195 072002
39209 0.7105787037071 58 Pause 1 9195 072002
39209 0.7427199074081 58 Schichtende 0 9198 90-0001
39210 0.3342708333366 58 Schichtbeginn 0 9197 90-0001
39210 0.4229861111089 58 Pause 20 9195 0720029
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:05 Uhr.