sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo almacenar la fecha de nacimiento y la edad para que la edad se pueda actualizar diariamente en PHP/MySQL?

La respuesta simple es no; nunca almacene la edad de una persona. Cambia para cada persona anualmente pero, como dices, tienes que comprobar que es correcto para cada persona diariamente.

Solo almacene la fecha de nacimiento y luego calcule la edad al seleccionar de la base de datos. Es solo today - date of birth por lo que casi no requiere CPU.

EDITAR:

Para ampliar mi comentario en Respuesta de ManseUK también existe la posibilidad de fracaso. ¿Qué sucede si su servidor/base de datos no funciona? ¿O su actualización no se ejecuta a la hora especificada? ¿O alguien viene y lo ejecuta manualmente después de que la actualización ya se haya ejecutado para esa fecha? ¿O alguien apaga tu programador? No hay peligro de que esto suceda si calculas Age como seleccione de la base de datos.

Para seleccionar donde la edad está entre 25 y 30 años y asumiendo una columna de FECHA dateofbirth su consulta sería algo como:

select *
  from users
 where dateofbirth between date_add( curdate(), interval -30 year )
                       and date_add( curdate(), interval -25 year )

Asegúrese de que users está indexado en dateofbirth .