簡単な答えはしないでください。人の年齢を保存しないでください。毎年人ごとに変わりますが、あなたが言うように、毎日すべての人にとって正しいことを確認する必要があります。
生年月日のみを保存し、データベースから選択するときに年齢を計算します。 today - date of birth
だけです したがって、CPUはほとんど必要ありません。
編集:
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
にインデックスが付けられます 。