首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于JavaScript结果的数据库中年龄列的日常更新

问基于JavaScript结果的数据库中年龄列的日常更新
EN

Stack Overflow用户
提问于 2021-02-10 02:52:53
回答 1查看 102关注 0票数 0

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

​

​

计算年龄的JS代码是:

代码语言:javascript
复制
   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岁?

我对必要步骤的想法是:

  1. 获取所有数据

代码语言:javascript
复制
let data = connection.query('SELECT * FROM my_table_name');

  1. 计算新时代

代码语言:javascript
复制
for(let i = 0; i < data.length; i++) {
  data[i].age = calculateAge(data[i].DOB);
}

  1. 将更新的年龄插入DB

中。

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

发布于 2021-02-10 03:03:40

将年龄存储在数据库中会使情况变得过于复杂,如果更新年龄的日常作业无法运行,则可能会导致问题。

我将从数据库中完全删除年龄列,并在查询数据时简单地计算从出生日期开始的年龄。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66130268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档