我每天午夜都在努力更新年龄。目前,该表有三列: id、道布和年龄。用户输入道布(YYYYMMDD格式),从中计算年龄并插入DB。

计算年龄的JS代码是:
calculateAge(birthDate) {
let year = birthDate.slice(0,4);
let month = birthDate.slice(4,6);
let day = birthDate.slice(6);
birthDate = year + '/' + month + '/' + day;
birthDate = new Date(birthDate);
let today = new Date();
var years = (today.getFullYear() - birthDate.getFullYear());
if (today.getMonth() < birthDate.getMonth() ||
today.getMonth() == birthDate.getMonth() && today.getDate() < birthDate.getDate()) {
years--;
}
return years;
}一旦成为2021/02/11,我如何确保id=2的年龄改变为31岁?
我对必要步骤的想法是:
let data = connection.query('SELECT * FROM my_table_name');for(let i = 0; i < data.length; i++) {
data[i].age = calculateAge(data[i].DOB);
}中。
CREATE EVENT update_age
ON SCHEDULE
EVERY 1 DAY
STARTS '2021-02-11 00:00:00'
DO
UPDATE my_table_name
SET age = ?
WHERE
... ;第三步是我目前被困的地方。首先,我需要Javascript在每天的basis...How上运行步骤1和步骤2,我会继续实现这个步骤吗?第二,由于我基本上是在更新整个数据库,我不知道条件语句应该是什么be..in --换句话说,我如何告诉db设置age = 31,其中id = 2?
发布于 2021-02-10 03:03:40
将年龄存储在数据库中会使情况变得过于复杂,如果更新年龄的日常作业无法运行,则可能会导致问题。
我将从数据库中完全删除年龄列,并在查询数据时简单地计算从出生日期开始的年龄。
https://stackoverflow.com/questions/66130268
复制相似问题