【问题标题】:Need to calculate and store age from birth to death date [duplicate]需要计算和存储从出生到死亡日期的年龄[重复]
【发布时间】:2017-10-06 08:24:04
【问题描述】:

我有一个名为 caduti 的人员数据 sql 表,其中包含日期列 data_nasc(出生日期)和 data_dec(死亡日期)。 我需要计算死亡时的年龄(以年为单位)并将此值设置在 eta 列中。 我尝试了一些查询,比如这个:

UPDATE caduti
SET caduti.eta =     
    DATEDIFF(YY, caduti.data_nasc, caduti.data_dec) - 
    CEILING
     (0.5 * SIGN (
        (MONTH(caduti.data_nasc) - MONTH(caduti.data_dec)) * 50
         + DAY(caduti.data_nasc) - DAY(caduti.data_dec)
        )
      )

但它不起作用。我的需要不仅是计算年龄,还要将它们存储在表格列中。有什么帮助吗?

【问题讨论】:

    标签: mysql datediff


    【解决方案1】:

    试试这个

    update 
    caduti
    set caduti.eta = (year(data_dec) - year(data_nasc) - (date_format(data_dec, '%m%d') < date_format(data_nasc, '%m%d')));
    

    【讨论】:

    • 感谢您的回复。这个方案非常简单高效,解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 2021-08-21
    • 2019-08-12
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多