Eu uso a idade para obter o intervalo entre os campos de data. Seu tipo é timestamp.
Meu código é como abaixo:
select age(timestamp MySecondDateField, timestamp MyFirstDateField)
Os dados no meu campo contêm:
2014-01-26 09:53:17.036359
Como devo subtrair duas datas?
Quando eu uso a idade abaixo, funciona:
select age(timestamp '2001-04-10', timestamp '1957-06-13')
Se essas colunas forem
timestamp
(oudate
) colunas, basta usarO prefixo
timestamp
or é necessário apenas para constantesdate
de data/hora .Se essas colunas forem varchar, você deverá alterá-las para um tipo de dados de data/hora adequado.
Até fazer isso, você pode usar a função
to_date()
outo_timestamp()
para converter uma string em uma data, por exemplo:Para mais detalhes sobre essas funções, consulte o manual: http://www.postgresql.org/docs/current/static/functions-formatting.html
Você nunca deve armazenar datas (ou números) como colunas varchar/text. Para corrigir sua tabela, você pode usar uma função de conversão ao executar a tabela alter: