sábado, 20 de febrero de 2016

calculando edades con postgresql


A veces nos gastamos todo el tiempo ideando o creando funciones para trabajar con fechas y hacer cálculos de edad de los campos que ingresamos o consultamos en la bases de datos, para esto tenemos en postgresql algunas funciones para el manejo de fechas que nos ahorran ese trabajo de traernos el campo fecha_nacimiento por ejemplo y tratarlo con javascript, php u otro lenguaje de programación y realizar las conversiones y cálculos.


Para hacer el calculo de la fecha de un campo date o alguno de estos tipos de campo, timestamp como ejemplo, podemos usar la función de postgresql llamada: age Function  esta función nos permite obtener el tiempo de un valor dado tipo date o afín,revisen la documentación de la función en el enlace dado o vaya a la documentación de postgresql y encontrará información de la misma.

Pueden revisar la documentación y ejemplos de esta función haciendo clic en el enlace.


 como ejemplo les dejo esta consulta base para realizar sin complicaciones de tablas ni mas, solo un ejmplo sencillo ilustra como trabaja la función:



SELECT age(timestamp '2016-01-01');  (current date is '2016-04-25')

resultado 3 mons 24 days


otro ejemplo tenemos:


SELECT age(timestamp '2016-04-25', timestamp '2016-01-01'); #con dos fechas

resultado 3 mons 24 days



aquí estamos transformando el string '2014-08-25' a formato de fecha de postgresql, en este caso timestamp dando el resultado desde la fecha actual hasta la fecha que colocamos, pero podemos tener nuestro campo de la tabla que tengamos y hacer el calculo de la edad.

Ahora bien si solo queremos obtener el año a través de una consulta podemos utilizar otra función de postgresql.

ejemplo tenemos

select date_part('year',age(timestamp '2015-01-01'));
 
resultado 1
 
 

Hay otras funciones que nos permite postgresql realizar tareas que evitamos tener hechas a nivel de programación, podemos revisar la documentación de postgresql para tener conocimientos de estas y ayudarnos a mejorar nuestras consultas al motor de bases de datos. Entre estas tenemos: extract,

No hay comentarios.:

Publicar un comentario