Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Zeitdifferenzberechnung in h innerhalb einer Abfrage

Begonnen von AccessDo66, August 03, 2023, 12:14:23

⏪ vorheriges - nächstes ⏩

AccessDo66

Hallo, wie lautet die korrekte Formel für die Berechnung einer Zeitdifferenz in einer Abfrage in Stunden zwischen zwei unterschiedlichen Datums- und Zeitangaben?
Mein Versuch lautete:

Differenz: ([Datum_ende]+[Zeit_ende])-([Datum_anfang]+[Zeit_anfang]).



Das funktioniert nicht.

MzKlMu

Hallo,
multipliziere Deine obige Formel mit 24.
Ergibt die Stunden als Dezimalzahl.
Gruß Klaus

markusxy

Man könnte natürlich auch die dafür vorgesehene Funktion verwenden: datediff

MzKlMu

Hallo,
Datediff halte ich hier für unpassend. Datediff liefert ja nur Ganzzahlen. Man müsste dann Minuten (n) verwenden und dann durch 60 teilen. Da kann ich dann gleich mit 24 multiplizieren.

Wobei ich natürlich annehme, dass dezimale Stunden benötigt werden.
Gruß Klaus

AccessDo66

Zitat von: MzKlMu am August 03, 2023, 12:16:41multipliziere Deine obige Formel mit 24.
Ergibt die Stunden als Dezimalzahl.
Das funktioniert. Nur muss ich die Multiplikation von meinem Ergebnis mit 24 in einen neues Feld packen.
ergebnis: [tbl_datum]![date_ende]+[tbl_zeit]![zeit_ende]-([tbl_datum]![date_anfang]+[tbl_zeit]![zeit_anfang])*24 Damit erhalte ich als Ergebnis "#Zahl!". Liegt wahrscheinlich an den Klammern. Ich probierte aber bereits verschiedene Varianten aus. Wie bekomme ich die Dezimalzahl zweistellig hinter dem Komma?

MzKlMu

#5
Hallo,
Deine Antwort ist etwas verwirrend.
Die gezeigte Formel für Ergebnis ist falsch.
Punkt geht vor Strichrechnung (Mathe Grundlagen).
Du musst erst die Differenz errechnen und dann mit 24 multiplizieren. Du musst also um den Differenzausdruck ein Klammerpaar einsetzen.
Differenz: ( ([Datum_ende]+[Zeit_ende])-([Datum_anfang]+[Zeit_anfang]) ) * 24Die Tabellennamen im Ausdruck sind überflüssig.

ZitatWie bekomme ich die Dezimalzahl zweistellig hinter dem Komma?
In der Abfrage bleibt die Zahl wie sie ist mit allen Kommastellen.
Formatiert wird unmittelbat zu Anzeige wenn alle weiteren Rechenoperationen mit der Differenz abgeschlossen sind.
Gruß Klaus

ebs17

Zahl zweistellig hinter dem Komma - Runden! Wäre auch Anwendung von Mathematik.
Mit freundlichem Glück Auf!

Eberhard

AccessDo66



ZitatFormatiert wird unmittelbat zu Anzeige wenn alle weiteren Rechenoperationen mit der Differenz abgeschlossen sind.

Wie funktioniert die Formatierung? Ich kenne nur Format. Dies wandelt aber eine Zahl in Text um.
Gibt es eine andere Variante, die die Zahl nach zwei Stellen hinter dem Komma "abschneidet"? Der Datentyp Zahl bleibt erhalten.

MzKlMu

#8
Hallo,
Du darfst nicht die Formatfunktion verwenden.
Im Formularfeld (oder Berichtsfeld) das Du zur Anzeige der Differenz verwendest, kannst Du direkt das Format einstellen.
Siehe Bild:
Gruß Klaus

ebs17

Noch einmal: RUNDEN!

Die Format-Eigenschaft verschiebt nur die Sichtbarkeit der Anzeige, weitere Dezimalstellen bleiben intern (=> Wert) erhalten. So etwas kann dann "unerwartet und völlig überraschend" besondere wunderliche Situationen auslösen:
- 3,50 € sind nicht gleich 3,50 €
- Die Summe aus angezeigten Werten ist anders als die Summe, die man mathematisch erwarten würde.
Mit freundlichem Glück Auf!

Eberhard