Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Zeiten addieren mit mehr als 24h

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Zeiten addieren mit mehr als 24h

    Hallo !

    Ich habe folgendes Problem, wobei ein kleiner Denkanstoss recht hilfreich wäre.
    Ich möchte mithilfe eines Select´s auf eine Tabelle die Zeiten addieren, die darin enthalten sind (Format HH24:MI:SS). Eigtl. eine recht einfache Sache, nur mein Ergebnis stimmt nicht

    select to_char (to_date(round(sum(to_number(to_char(to_timestamp( ce.EVENT_ATTR_3,'HH24:MI:SS'),'SSSSS')))/60), 'SSSSS' ), 'HH24:MI:SS') as duration,
    from meinerTabelle mt
    where mt.ACCOUNT_NUM = eine Account nummer

    Ziel ist es, die Gesamtzeit zu ermitteln, die wahrscheinlich höher liegt als 24 h gesamt. Format sollte natürlich wieder HH24:MI:SS sein. Die Einträge übersteigen laut Schätzung den 24h Korridor.


  • #2
    Was für ein Datenbanksystem wird da eigentlich verwendet? Falls Oracle: HH24 bedeutet "Stunde des Tages", nicht "Anzahl der Stunden". Hast du keine Dokumentation wo du soetwas nachlesen kannst? Die Funktion to_date ist dazu da, Zeitpunkte zu formatieren. Du möchtest aber eine Zeitspanne formatieren.
    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

    Kommentar


    • #3
      Oracle DB die haben mit sum so ihre Eigenheiten sry hatte ich vergessen !

      Muss auch ehrlich zugeben, das mir bis jetzt eine "bessere" Lösungsalternative fehlt, da ich mit Zeit"rechnungen" bisher nicht allzu viel am Hut hatte

      Kommentar


      • #4
        wenn du rechnen willst, dann lass es beim to_timestamp - und rechne mit dem ....

        EDIT: sorry ... musst natürlich jedesmal den vorhergehenden Timestam subtrahieren ^^

        Beispiel Zeiterfassung Job
        rein 8:00 Uhr , 10:00 Rauchpause (10 minuten wg Fahrstuhl), 12:30 Mittagspause(30min), 17:00 raus..
        PHP-Code:
        $oldtime=$zeiten[0];// die Timestamps im array $zeiten
        $summe=0;
        for(
        $i=1;$i<count($zeiten);$i++) {
           
        $summe+=($zeiten[$i]-$oldtime); 
           
        $oldtime=$zeiten[$i];
        }
        $summe+=$zeiten[0]; 
        das sieht dann im Ablauf so aus ...
        $oldtime=127blabla (=8:00 an dem Tag)
        $summe=0;
        ->summe=7200 | +7200 | (2 Stunden arbeiten)
        ->summe=7600 | +600 | (10 Minuten Rauchpause)
        ->summe=16200 | +8400 | (weiteres Arbeiten bis Mittagspause)
        ->summe=18000 | +1800 | (Mittag)
        ->summe=32400 |+14400 | (Arbeitsende)
        Ende:
        summe=127blabla+32400 -> kann rückkonvertiert werden zu 17:00 an dem Arbeitstag
        "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

        Kommentar


        • #5
          danke für die Ideen
          nur um das hier abzuschliessen, wie folgt gelöst und getest (fkt einwandfrei)

          TO_CHAR (to_date(SUM(to_number(TO_CHAR(to_timestamp(ce.EVE NT_ATTR_3,'HH24:MI:SS'),'SSSSS'))), 'SSSSS' ), 'HH24:MI:SS') AS duration

          Packt er mir die Spalteneinträge in ce.Event_ATTR_3 zu einer handlichen Zahl zusammen mit der ich was beginnen kann.

          Kommentar

          Lädt...
          X