Try the Replace () function: Replace( text ; start ; numberOfCharacters ; replacementText )
It can handle variations in strings once given point is found (i.e. the start parameter). Here is one option:
Let ( [
_yourText = your text string ;
_start = Position ( _yourText ; "." ; 1 ; 1 ) ;
_noc = Length ( _yourText ) - _start ] ;
Replace( _yourText ; _start ; _noc ; "" )
) // end Let
You may have to add or subtract 1 from the _start or _noc. I usually test in the data viewer and adjust as needed.
You may find it easier using a number field with a companion calculating seconds from the input. You can add up the seconds using a summary field.
60 * int(time_field) + 100* mod( time_field; 1)
1.04 => 64
Thanks Malcolm, that one was almost perfect - I just changed the result to Time and it displays h:mm:ss.
As long as time_field is a time field (and not text), this calculation is superfluous, since all date and time values are stored as number internally.
Your original attempt uses a period to separate seconds from minutes.
I would apply an auto-enter calculation
Substitute ( time_field; ["."; ":"]; [","; ":"]; [" "; ":"] )
which allows for
4.9 = 04:09
4,9 = 04:09
4 9 = 04:09