sql >> Base de Datos >  >> RDS >> PostgreSQL

Calcular la edad en años en PostgreSQL

Postgres tiene la age() función que devuelve la edad en años, meses y días en función de dos fechas.

Esto funciona bien a menos que solo desee devolver la edad en años.

Por ejemplo, simplemente desea obtener la edad de una persona en función de su cumpleaños. Quieres algo como 32 en lugar de 32 años 4 meses 67 días , que es lo que age() es probable que regrese.

Afortunadamente hay una manera fácil de hacer esto en PostgreSQL.

Si solo desea la edad en años, puede usar extract() o date_part() para obtener el año de la age() valor de retorno de la función.

Aquí hay un ejemplo que usa date_part() función:

SELECT date_part('year', age(timestamp '2003-12-27'));

Resultado:

16.0

Así es como aparece cuando lo ejecuto en Azure Data Studio.

Cuando lo ejecuto en psql , me sale esto:

16

Ambos extract() y date_part() devolver sus resultados usando el tipo de datos de doble precisión.

Puede convertir esto en un número entero (u otro tipo de datos) si es necesario, agregándolo con ::int .

SELECT date_part('year', age(timestamp '2003-12-27'))::int;

Resultado:

16