2017-10-06 111 views
1

我有一个名为caduti的日期列data_nasc(出生日期)和data_dec(死亡日期)的人数据的sql表。 我需要计算死亡时的年龄(以年为单位),并在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) 
     ) 
    ) 

但它不起作用。我的需要不仅是计算年龄,而且还将它们存储在表格栏中。任何帮助?

回答

0

试试这个

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

谢谢您的答复。这个解决方案非常简单高效,解决了我的问题。 – Pier67