Muchas veces este tipo de calculos recurrimos ha hacerlos por medio de alguna función, y no nos paramos a pensar que podemos realizarlo en la misma consulta y ahorrar asi tiempo, creación de funciones y llamadas a estas. Con la siguiente consulta, tenemos un campo llamado birthDay el cual almacena la fecha de nacimiento dentro de nuestra tabla myTable y la consulta nos devuelve las edades a dia de hoy.
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthDay)), '%Y')+0 AS age FROM myTable
Estupendo!!! gracias por el aporte!!
Excelente. Evita todo el cuento de suma y resta de hace años. Muy bueno. Gracias.
Excelente :v
Tambien sirve para cuando son años biciestos?
no…
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(date(‘2001-01-01’))-TO_DAYS(date(‘2000-01-01’))), ‘%Y’)+0 AS age ;
Retorna 1 (bisiesto)
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(date(‘2002-01-01’))-TO_DAYS(date(‘2001-01-01’))), ‘%Y’)+0 AS age ;
Retorna 0