By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table t as
select '30 min' as elapsed union all
select '30 min' as elapsed union all
select '1 hour' as elapsed union all
select '1 hour' as elapsed union all
select '1 hour 30 min' as elapsed union all
select '1 hour 30 min' as elapsed
select elapsed,
((case when elapsed like '% hour%'
then substring_index(elapsed, ' hour', 1) * 60
else 0
end) +
(case when elapsed like '%min%'
then substring_index(substring_index(elapsed, ' min', 1), ' ', -1) + 0
else 0
end)
) as elapsed_minutes
from t
elapsed | elapsed_minutes |
---|---|
30 min | 30 |
30 min | 30 |
1 hour | 60 |
1 hour | 60 |
1 hour 30 min | 90 |
1 hour 30 min | 90 |