gpt4 book ai didi

php - 如何在 PHP/MySQL 中存储生日和年龄以便年龄可以每天更新?

转载 作者:行者123 更新时间:2023-11-29 18:04:29 29 4
gpt4 key购买 nike

我应该如何在 MySQL 中存储生日,以便我可以通过 Cron 作业轻松地每天更新每个人的年龄?

存储年龄和出生日期是否有意义,以便在进行涉及年龄的搜索时,我不必即时计算每个年龄并浪费 CPU 资源?

如果是这样,我应该如何 1) 存储出生日期,2) 计算每天的年龄?

我可以想象每日 cron 脚本首先过滤掉出生日期月份不是当前月份的用户,然后过滤掉出生日期不是当前日期的用户,然后将每个用户的年龄加一向左。

这有道理吗?如果是这样,我该怎么做?有没有更好的方法来完成这一切?

最佳答案

简单的答案是不要;永远不要存储一个人的年龄。每个人的数据每年都会发生变化,但正如您所说,您必须每天检查它是否适合每个人。

只存储出生日期,然后从数据库中选择时计算年龄。只是今天 - 出生日期,因此几乎不需要 CPU。

编辑:

扩展我在 ManseUK's answer 中的评论也有失败的可能。如果您的服务器/数据库宕机了会发生什么?或者您的更新无法在指定时间运行?或者有人在该日期运行更新后手动运行它?或者有人关闭了你的调度程序?如果您按照从数据库中选择的方式计算年龄,则不会有发生这种情况的危险。

要选择年龄在 25 到 30 岁之间的位置,并假设 DATE 列 dateofbirth,您的查询将类似于:

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

确保usersdateofbirth建立索引。

关于php - 如何在 PHP/MySQL 中存储生日和年龄以便年龄可以每天更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48014021/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com