BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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: 7
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
Beiträge: 2732
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: 7
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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten