Neuigkeiten:

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

Mobiles Hauptmenü

Laufzeitenberechnung mit hunderstel

Begonnen von quini, Februar 04, 2025, 19:09:22

⏪ vorheriges - nächstes ⏩

knobbi38

#15
Hallo,

vielleicht wird das ja mal öfter gebraucht. Deshalb hier eine kleine Beispieldatenbank mit entsprechenden Konvertierungsroutinen, die auch in SQL verwendet werden können. Um das etwas spannender zu machen, kann bei der Konvertierungsroutine per Index angegeben werden, welche Teilkomponente zurückgegeben werden soll.

Gruß
Knobbi38

werner budde

#16
Moin Knobbi38,

ich habe Dein Baby mal getestet.
Bei Quinis Vorgabe 1:12,98 aus #1 gibt es folgende LZ-Fehlermeldung, siehe Screenshot.
Ich habe #1 so verstanden, dass er diesen exotischen String aus einer externen Zeitmessung so importieren "muss".
In Deiner Tabelle tblTimeValue haben die Einträge in Feld TimeString noch ein 00: vorne vor : 00:01:12,98
Gruß Werner

werner budde

Gruß Werner

knobbi38

Hallo Werner,

du hältst dich nicht an das Eingabeformat "hh:mm:ss[,.]nn", deshalb der Fehler. In der Beispieltabelle haben alle Stringtime-Werte das richtige Format und deshalb funktioniert die Query.

So ein Fehler wird normalerweise nicht in der Funktion abgefangen, da ich davon ausgehen kann, daß in der DB alle Stringtime-Werte immmer im richtigen Format vorliegen, denn diese Werte müssten eigentlich bei der Erfassung validiert werden, bevor sie in die Tabelle gelangen. 

Gruß
Ulrich

werner budde

Aber Quini bekommt nun mal die Daten importiert im Format m:ss,00 (00: Hundertstel).
Siehe sein Muster in #1 :  1:12,98.
Siehe auch mein Vorspanntext in #16
Gruß Werner

knobbi38

#20
@werner budde
ZitatAber Quini bekommt nun mal die Daten importiert im Format m:ss,00 (00: Hundertstel).
Das mag ja sein, aber dann kann er nach oder während des Imports die Daten normalisieren. Wenn die Daten grundsätzlich ohne Stundenanteil sind, kann er dieses ganz einfach durch das Anfügen eines Präfixes "00:" machen. Da ":" als Trennzeichen erkannt wird, ist es egal, ob die einzelnen Werte 1 oder 2 stellig sind. Mit dem Index 6 könnte er dann den normalisierten Wert auch zurückschreiben.

Das Problem betrifft aber ja eigentlich nur den Import, weil nur die CS Werte als Long gespeichert werden. 

Gruß
Ulrich

Nachtrag:
Eine Validierung geht relativ einfach mit regulären Ausdrücken. Hier mal eine schöne Zusammenstellung verschiedener Möglichkeiten:
https://stackoverflow.com/questions/7536755/regular-expression-for-matching-hhmm-time-format

quini

Guten Morgen!

Vielen, vielen Dank als alle Mithelfer. Ich werde das nun in Ruhe ausprobieren, da ich jetzt eine Rennpause von zwei Wochen habe.

Allen einen erholsamen Sonntag

quini