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
BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> 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
Re: Berechnung Arbeitszeit ohne Pausen mit Hilfe CAST-Befehl
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
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
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"
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Berechnung Arbeitszeit ohne Pausen mit Hilfe CAST-Befehl
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
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 ❤️