🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Berechnung Arbeitszeit ohne Pausen mit Hilfe CAST-Befehl

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
RBOCK
Beiträge: 9
Registriert: Mi 14. Jul 2021, 18:32

Berechnung Arbeitszeit ohne Pausen mit Hilfe CAST-Befehl

Beitrag von RBOCK » Mi 14. Jul 2021, 19:49

Hallo,

ich möchte in einer base Datenbank die Arbeitszeit aus (Arbeitsende-Arbeitsbeginn) - Pausezeit berechnen. In der Datentabelle sind die Feldtypen für Arbeitsende, Arbeitsbeginn und Pause jeweils Zeit [Time].

In einer Abfrage habe ich über DATEDIFF( 'mi', "Arbeitsbeginn", "Arbeitsende" ) / 60.00 AS "TagesArbeitsSTD_HB_mP" die Arbeitszeit mit Pausenzeit berechnet. Das Ergebnis ist ein Dezimalwert. Diesen kann ich, soweit mir bekannt ist, nicht in einen Time-Wert umwandeln (vgl. Matrix unter https://docs.microsoft.com/en-us/sql/t- ... rver-ver15). Ich habe den CAST Befehl sowohl zur Umwandlung in Datetime ausprobiert, als auch die Umwandlung der Time-Werte in Datetime-Werte, aber die Syntax ist leider immer falsch.

SELECT "ENDE" AS "TIME", CAST('ENDE' AS DATETIME) AS "DATETIME"

1) Wie kann ich den Decimal-Wert mit einem SQL-Befehl als Datetime-Wert ausgeben lassen?

2) Wie wäre die SQL-Syntax für die Umwandlung der Time-Werte in Datetime-Werte und die anschließende Ausgabe als Decimal-Werte, sodass ich anschließend die Differenz bilden kann? Ich habe unter https://database.guide/examples-of-conv ... ver-t-sql/ ein Paar Beispiele gefunden, aber ich komme nicht weiter.

Ich nutze:

Version: 7.0.5.2 (x64)
Build ID: 64390860c6cd0aca4beafafcfd84613dd9dfb63a
CPU threads: 8; OS: Windows 10.0 Build 19043; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: threaded

Vielen Dank im Voraus

MfG

RBOCK

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Berechnung Arbeitszeit ohne Pausen mit Hilfe CAST-Befehl

Beitrag von RobertG » Do 15. Jul 2021, 12:59

Hallo RBOCK,

Du brauchst zum Umwandeln einen String, der nach dem Muster hh:mm:ss aufgebaut ist.
Angenommen das Feld, in dem die Zeitangabe ist, heißt "Arbeitszeit", dann geht das über

Code: Alles auswählen

CAST( 
RIGHT( '0' || REPLACE( FLOOR( "Arbeitszeit" ), '.0', '' ), 2 ) || ':' || 
RIGHT( '0' || REPLACE( ( "Arbeitszeit" - FLOOR( "Arbeitszeit" ) ) * 60, '.0', '' ), 2 ) || ':00' 
AS TIME ) AS "Zeit"
Hatte ich gerade greifbar, weil ich so etwas ähnliches in den letzten Monaten erstellt habe.

Die Zuweisung eines Datums für einen Datumszeitwert müsstest Du dann selbst erstellen. In der Zeit liegt schließlich kein Datum begraben. Das muss schon anderswoher kommen. Der Aufbau eines Datumzeit-Wertes ist dann nach dem Muster
YYYY-MM-DD hh:mm:ss

Der Bericht braucht so etwas allerdings nicht. Da kannst Du getrost mit den Dezimalzahlen rechnen. Nur immer daran denken: 1 steht dort für einen Tag, entsprechend ist eine Stunde 1/24 usw.

Ich würde da das Handbuch benutzen und nicht versuchen, aus Quellen, die nichts mit der internen HSQLDB zu tun haben, etwas herauszulesen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

RBOCK
Beiträge: 9
Registriert: Mi 14. Jul 2021, 18:32

Re: Berechnung Arbeitszeit ohne Pausen mit Hilfe CAST-Befehl

Beitrag von RBOCK » Fr 23. Jul 2021, 11:30

Hallo Robert,

entschuldige bitte die späte Rückmeldung. Ich danke Dir auf jeden Fall für deine Hilfe. Ich habe es jetzt so gemacht, dass bei der Eingabe der Arbeitszeiten und Pausen (Beginn, Ende) jeweils ein Timestamp genutzt wird.

MfG

RBock


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten