Postgres tem a
age() função que retorna a idade em anos, meses e dias com base em duas datas. Isso funciona bem, a menos que você queira apenas retornar a idade em anos.
Por exemplo, você simplesmente deseja retornar a idade de uma pessoa com base em seu aniversário. Você quer algo como 32 em vez de 32 anos 4 meses 67 dias , que é o que
age() é provável que volte. Felizmente, existe uma maneira fácil de fazer isso no PostgreSQL.
Se você quiser apenas a idade em anos, você pode usar
extract() ou date_part() para obter o ano de age() valor de retorno da função. Aqui está um exemplo que usa o
date_part() função:SELECT date_part('year', age(timestamp '2003-12-27')); Resultado:
16.0
É assim que aparece quando o executo no Azure Data Studio.
Quando eu executo no psql , Eu entendi isso:
16
Ambos
extract() e date_part() retornam seus resultados usando o tipo de dados de precisão dupla. Você pode converter isso em um inteiro (ou outro tipo de dados), se necessário, anexando-o com
::int . SELECT date_part('year', age(timestamp '2003-12-27'))::int; Resultado:
16