I have table in DB2
id HOURS HOURSMINUTESECECONDS
1000 450.5 30:30:30
Hours is float value and HOURSMINUTESSECONDS is string value
I subtract them by using this function:
(HOURS -
(CAST(substr(HOURSMINUTESSECONDS , 1, 2) AS float) +
CAST(substr(HOURSMINUTESECONDS , 4, 2) AS float)/60 +
CAST(substr(HOURSMINUTESECONDS , 7, 2) AS float)/3600)) as diff
But if my row in HOURSMINUTESECONDS has value on example 300:30:30 or 3000:30:30 etc this won’t work (ERROR) because substring will take only first elements.
So how this can be solved (SPLIT?) ? To take full value between “:” no meter how many charatcters?
Thank you
LOCATE(that tells you index of an occurence of a substring in a string)(HOURS -(CAST(substr(HOURSMINUTESSECONDS , 1, LENGTH(HOURSMINUTESSECONDS) - 6) AS float) +
CAST(substr(HOURSMINUTESECONDS , LENGTH(HOURSMINUTESSECONDS) - 4, 2) AS float)/60 +
CAST(substr(HOURSMINUTESECONDS , LENGTH(HOURSMINUTESSECONDS) - 1, 2) AS float)/3600)) as diff