Eu tenho uma coluna Postgresql que é um varchar que está salvando uma string que se parece com '2 years, 5 months'
ou '3 months'
ou '9 years, 0 months
'. Não consigo converter a coluna em um intervalo porque ela quebrará várias funcionalidades existentes, então o que estou tentando fazer é converter esse varchar em um intervalo na instrução select. Não consigo descobrir como fazer isso, estava pensando que primeiro preciso formatá-lo em um timestamp e depois transformá-lo em um intervalo? Mas não consegui encontrar nenhuma informação sobre este caso específico. Obrigado pela ajuda!
Edit 1: a solução de a_horse_with_no_name funcionou, mas eu estava recebendo um erro anteriormente por causa das linhas vazias, então escrevi um caso assim para corrigi-lo
case
when
duration = ''
then
interval '0'
else
duration::interval
end
Se todos os valores seguirem a sintaxe que você mostrou, você pode simplesmente convertê-lo em um intervalo: