+49 (0)7531 906010| service@combit.net

Datediff - Sekunden werden falsch angegeben

Hallo,

ich möchte gerne die Differenz zwischen zwei Date-Typen ausgeben, dazu habe ich dies geschrieben:
«str$(DateDiff (Date (Start),Date (End)),200,100)» und in das Feld Dauer eingebunden.

Hier ein Beispiel:

Normalerweise][/url] wird unter Dauer das richtige ausgegeben, doch die Funktion rundet anscheinend die Millisekunden, wie man am obigen Beispiel sehen kann. Bei der Dauer sollte in Sekunden „1“ stehen. Dort wird aber gerundet, sodass 0 Sekunden steht. Manchmal wird natürlich so gerundet, dass es passt, aber manchmal auch eben nicht.
In der DB steht als Wert in den Feldern unter Start und Ende 2012-04-19 16:28:04.000 und 2012-04-19 16:28:05.000, sodass es von der Funktion kommen muss.

Bezüglich einer Zeiterfassung, wo es wichtig ist die Differenz zwischen zwei Zeiten zu berechnen, ist es natürlich enorm wichtig, dass auch die richtige Zeitangabe als Ergebnis ausgegeben wird.

Hat jemand vielleicht eine Idee wie man dieses Problem lösen kann? Bzw. wird dies behoben?

Mit freundlichen Grüßen
Edith P.

Hi Edith,

ein Datum ist in cRM-Formeln ein numerische Wert (Fließkommazahl) auf Tagesbasis, der Uhrzeitanteil spiegelt sich dabei im Nachkommastellenteil wider, d.h. 1 Sekunde ist 1/(246060) = 1/86400 = 1,15740…e-5 (Windows Taschenrechner sei Dank :slight_smile: )

Und ich tippe darauf, dass bei 1 Sekunde Differenz die Genauigkeit der Nachkommastellen einfach nicht ausreicht. Wenn du genau 1 Stelle hinter dieser kleinstmöglichsten Genauigkeitseinheit eine 1 addierst, dann müsste sich das lösen lassen - in der Theorie zumindest. :slight_smile: Du könntest also mal versuchen, was passiert, wenn du zum DateDiff fest 1e-6 addierst, also

«str$(DateDiff (Date(Start),Date(End))[h]+1e-6[/h],200,100)»

Gruß

Alex

Hallo Alex,

danke für den Tipp. Habe deine Formel ausprobiert und es hat geklappt :slight_smile:

Vielen Dank nochmal.

LG Edith

© combit GmbH