简单的答案是:不要。永远不要存储一个人的年龄。它每年针对每个人而变化,但是,正如您所说,您必须每天检查每个人的正确性。
仅存储出生日期,然后从数据库中选择时计算年龄。只有
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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)