1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Zeitberechnung...

Dieses Thema im Forum "SQLite" wurde erstellt von klebbo, 26 November 2019.

  1. klebbo

    klebbo Neuer Benutzer

    Hallo zusammen.

    Ich komme zu euch mit einem für mich recht heiklen Thema, da ich nicht auf SQLite spezialisiert bin.
    Und zwar geht es, im Prinzip, um eine recht simple Summierung.

    Ich habe eine SQLite-Datenbank unserer Zeiterfassung. Dort wird die Arbeitszeit nicht ganz Logisch abgespeichert. Arbeitet jemand 7 Stunden 30 Minuten, steht in der Datenbank : 7,3. Dies gilt es umzurechnen Industrieminuten. Soweit so gut. Folgenden Code habe ich:

    SELECT

    CASE
    WHEN substr(IstStd,3,1) LIKE ',' OR '.'


    THEN (SUM(CASE WHEN (substr(IstStd,4,2)/60 NOT LIKE 0) THEN ROUND((substr(IstStd,4,2))/60 + (substr(IstStd,1,2)),2) ELSE (IstStd) END))


    ELSE (SUM(CASE WHEN (substr(IstStd,3,2)/60 NOT LIKE 0) THEN ROUND((substr(IstStd,3,2))/60 + (substr(IstStd,1,1)),2) ELSE (IstStd) END)) END AS IstStd


    FROM ARCHIV_JOURNAL WHERE PersNr ='3041' AND Datum BETWEEN '2019-09-01' AND '2019-09-30'


    Eine Menge CASE, aber ich musste halt bei den Nachkommastellen abtrennen, diese umrechnen und quasi wieder zusammenfügen. Soweit so gut. Es klappt zu 95%. Sobald die Arbeitszeit über 10 Stunden ist, komme ich nicht mehr an die Nachkommastellen ran. Obwohl ich genau diesen Fall abfange mit dem ersten CASE. Er nimmt die Werte als reinen INT, somit fehlen mir die Nachkommastellen.

    Hat jemand eventuell eine Idee, wie ich's zum laufen bekomme, oder eventuell einen besseren Weg?

    Über jede Hilfe bin ich sehr Dankbar!!

    Vielen Dank im voraus und einen angenehmen Tag!

    Liebe Grüße,
    Matthias
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden