У вас конфликт есть ваше описание. Вы говорите, что у вас есть текстовый столбец в формате MM: SS, но тогда ваш план конвертации - конвертировать ЧЧ: ММ. Конвертация для этих форматов будет совсем другой. Тем более, если это ЧЧ: ММ: СС. Предполагая, что ваш формат MM: SS означает, что 2 часа записывается как 120 или 120: 00. Если это так, извлечение эпохи, скорее всего, не удастся. Следующее будет работать.
set new_duration = case when duration ~ ':'
then
60*(substr(duration,1,position(duration,':'-1)::integer
+(substr(duration,position(duration,':'+1)::integer
else
60*duration::integer
Кроме того, вам нужно добавить шаг в план, чтобы проверить правильность форматирования столбца в каждой строке. ИМХО, нет такой вещи, как значение даты и времени, хранимое в тексте (строке); да, есть строки, которые с надеждой и удачей содержат правильные отформатированные данные - не рассчитывайте на это.