![]() |
Seleccionar los que hoy cumplen años Hola gente, alguien tiene idea de como yo puedo filtrar los registros de “personas” que cumple años hoy (fecha actual de sistema) a partir de la fecha de nacimiento. Yo debería tomar el campo fecha de nacimiento y CURRENT_DATE para poder saber si hoy cumple años o no, yo intente hacer algo así: SELECT ( ( RIGHT( CURRENT_DATE, 5 ) - RIGHT( fecha_nacimiento, 5 ) ) AS edad FROM personas Y luego mediante un algoritmo filtrar todos los que edad es = 0, de esta forma saco los que hoy cumplen años, pero el problema es que es muy ineficiente eso, cuando allá muchos registros se va a poner lento el servidor, alguien tiene una idea mejor?? Gracias |
Re: Seleccionar los que hoy cumplen años Cita:
SELECT * from personas where date_format (fecha_nacimiento, '%m') = date_format (now(), '%m') AND date_format(fecha_nacimiento, '%d') = date_format (now(), '%d') |
Re: Seleccionar los que hoy cumplen años ¿Para que te complicas con RIGHT(), si tienes la función YEAR()? Código: SELECT (YEAR(CURRENT_DATE()) - YEAR(fecha_nacimiento)) edad FROM personas;Código: SELECT (YEAR(CURRENT_DATE()) - YEAR(fecha_nacimiento)) edad |
Re: Seleccionar los que hoy cumplen años Muchas gracias jurena y gnzsoloyo, me anduvieron bien las dos soluciones. |
Re: Seleccionar los que hoy cumplen años de nada, amigo, aunque la solución buena es la de gnzsoloyo, pues la consulta te saca además el número de años y lo hace usando las funciones más apropiadas. Yo aprovecho para abusar de nuevo de los conocimientos de gnzsoloyo y preguntarle si existe alguna diferencia de rendimiento entre una consulta con date_format ('%d') y otra con DAY(), y lo mismo com MONTH () y YEAR() respecto a las consultas con date_format('%m'), etc. Gracias por anticipado. |
| La zona horaria es GMT -6. Ahora son las 10:17. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.