Consulta de fecha de cumpleaños en MySQL
Bienvenidos a VerTutoriales, hoy os traigo una consulta bastante sencilla en mysql, para que podáis saber los cumpleaños que son en el mes actual y en el mes que queráis.
El problema me vino con una pequeña función que me pidió un cliente para la aplicación que se le está desarrollando. En su caso es para una ludoteca y me comentó de que manera podía tener controlada la fecha de su cumpleaños para tener esa atención con su cliente (o en su caso, con el tutor de este).
Así que manos a la obra, la consulta actualmente lo que hace es sacar desde el día actual y el siguiente todos los cumpleaños y los ordena por fecha de cercanía.
Por tanto, la consulta quedaría así:
«SELECT id, nombre, nacido FROM alumnos WHERE MONTH(nacido) = MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH)) OR MONTH(nacido) = MONTH(CURDATE()) AND DAY( nacido ) > DAY(CURDATE())»
Como podéis ver, utilizamos la función MONTH que lo que hace es sacar el mes de una fecha dada, en este caso de «nacido» que guarda la fecha de nacimiento y también de la función CURDATE() que devuelve la fecha actual. También utilizamos la función DAY que al igual que MONTH recibe un parámetro de fecha pero como se podrá intuir, devuelve el día.
También utilizamos la función DATE_ADD, de esta manera podemos añadir a la fecha el intervalo que queramos, nosotros le añadimos un mes, para así saber que es durante el mes que viene, no se podría utilizar MONTH(CURDATE()) + 1 por que si se diera el caso de diciembre, este sería +1 = 13, por lo que eso daría error.
Para termina, simplemente le decimos que sean a partir del día de hoy con el DAY(nacido) > DAY(CURDATE())
Espero que os sea de ayuda para el copy paste!
¿Qué utilidad le vais a dar o cómo lo mejorarías? 🙂
Muchas gracias amigo me ha servido un monton! 😀 me gustaria q hiciera sun tutorial, sobre como mostrar con notificacion push, el dia q está de cumpleños el usuario
Bueno… en ese caso, la consulta la lanzaría en el momento en que se autentica el usuario y en ese proceso de carga realizaría la acción que fuera, por ejemplo el envío push que comentas.
Salud!