Yeah, I search but closest thing I found was
NER: ConvertTimeHHMMSSToDecimal (N1700800)
I wrote this...It works but to your point doesn't account for elapsed time over days. In our specific case, date/time stamps that overlap a day are invalid and will not get into the database.
Data Structure: D550108D - Convert time from HHMMSS to decimal
BF mnTimeHHMMSS [UPMT]
BF mnTimeDecimal [CLAT]
----------------------------------------
Event Level Variables
----------------------------------------
evt_mnHours_MATH01 [MATH01]
evt_mnSeconds_MATH01 [MATH01]
evt_mnMinutes_MATH01 [MATH01]
evt_iMinutes_INT01 [INT01]
----------------------------------------
00001 VA evt_mnHours_MATH01 = [BF mnTimeHHMMSS]/10000-(mod([BF mnTimeHHMMSS],10000)/10000)
00002 VA evt_mnMinutes_MATH01 = mod([BF mnTimeHHMMSS],10000)/100
00003 VA evt_iMin_INT01 = [VA evt_mnMinutes_MATH01]
00004 VA evt_mnMinutes_MATH01 = [VA evt_iMinutes_INT01]/60
00005 VA evt_mnSeconds_MATH01 = mod([BF mnTimeHHMMSS],100)/3600
00006 BF mnTimeDecimal = [VA evt_mnHours_MATH01]+[VA evt_mnMinutes_MATH01]+[VA evt_mnSeconds_MATH01]