Простой ответ: нет; никогда не хранят возраст людей. Он меняется для каждого человека ежегодно, но, как вы говорите, вы должны проверить, что он правильный для каждого человека ежедневно.
Сохранять только дату рождения, а затем вычислять возраст при выборе из базы данных.
EDIT:
Чтобы развернуть мой комментарий в ответе ManseUK , есть также возможность сбоя , Что произойдет, если ваш сервер / база данных не работает? Или ваше обновление не запускается в указанное время? Или кто-то приходит и запускает его вручную после того, как обновление уже было запущено на эту дату? Или кто-то отключает ваш планировщик? Нет никакой опасности, если это произойдет, если вы выберете Age
при выборе из базы данных.
Чтобы выбрать, где возраст составляет от 25 до 30 лет, и при условии, что столбец DATE dateofbirth
, ваш запрос будет чем-то вроде :
select *
from users
where dateofbirth between date_add( curdate(), interval -30 year )
and date_add( curdate(), interval -25 year )
Убедитесь, что users
проиндексирован на dateofbirth
.