Calcular edad en Mysql, Función para calcular edad en Mysql

mysql

Las funciones en Mysql aportan ventajas importantes en la ejecución de tareas de lado del servidor en entornos de producción exigentes en los tiempos de respuesta experimentados por los usuarios, En muchas ocasiones suele ser mas provechoso tener funciones con las ordenes a ejecutar en el SGBD, que procesar los datos desde un lenguaje de programación desde el servidor, veamos en este ejemplo que puede ser utilizado en cualquier tipo de proyecto que emplee una base de datos como calcular edad en Mysql.

Calcular edad en Mysql

En esta ocasión veremos una función en MYSQL la cual tiene la capacidad de calcular la edad pasando como parámetro una fecha, teniendo en cuenta la estructura y uso de variables dentro de la función tendremos una guía para la realización de futuras funciones con tareas mas elaboradas y mucho mas complicadas en nuestras bases de datos veamos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DELIMITER $$
USE `bd`$$
DROP FUNCTION IF EXISTS `calc_edad`$$
CREATE DEFINER=`root`@`%` FUNCTION `calc_edad`(fecha DATETIME) RETURNS VARCHAR(10) CHARSET utf8
READS SQL DATA
BEGIN
DECLARE edad VARCHAR (10);
SELECT IF(
TIMESTAMPDIFF(YEAR,TIMESTAMP(fecha),TIMESTAMP(NOW()))<=0,
(IF(
TIMESTAMPDIFF(MONTH,TIMESTAMP(fecha),TIMESTAMP(NOW()))<=0,
(IF(
TIMESTAMPDIFF(DAY,TIMESTAMP(fecha),TIMESTAMP(NOW()))<=0,
(CONCAT(TIMESTAMPDIFF(HOUR,TIMESTAMP(fecha),TIMESTAMP(NOW())),‘ Horas’)),
(CONCAT(TIMESTAMPDIFF(DAY,TIMESTAMP(fecha),TIMESTAMP(NOW())),‘ Dias’))
)),
(CONCAT(TIMESTAMPDIFF(MONTH,TIMESTAMP(fecha),TIMESTAMP(NOW())),‘ Meses’))
)),
(CONCAT(TIMESTAMPDIFF(YEAR,TIMESTAMP(fecha),TIMESTAMP(NOW())),‘ Años’))
)
INTO edad;
RETURN edad;
END$$
DELIMITER ;

para llamar la función solo hace falta hacer un select referenciando a esta así:

1
SELECT calc_edad(‘1988-09-09’);

Amplía tus conocimientos visitando la sección de MySQL, en la cual encontrarás más consultas en este lenguaje para bases de datos.

¡Suscríbete a mi canal, para acceder a más contenidos gratuitos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *