在mysql中从出生年份计算年龄

pb3skfrl  于 2023-02-07  发布在  Mysql
关注(0)|答案(1)|浏览(99)

我有一列包含多个值,包括出生日期和出生年份

ID    OptionValue

1        1992
2        1993-05-31
3        2002
4        1976-06-3

理想情况下,我希望解决方案是

ID    OptionValue        Age

1        1992            31
2        1993-05-31      29
3        2002            21 
4        1976-06-3       46

现在

Select TIMESTAMPDIFF(YEAR, lp.optionValue , CURDATE())as Age from learner

以及

Select DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(lp.optionValue , '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(lp.optionValue, '00-%m-%d')) as Age from learner

当日期格式为“yyyy-mm-dd”时,它非常适合我,但当只给出年份时,它会抛出一个错误。我可以从刚刚给出的年份计算年龄吗?

wpx232ag

wpx232ag1#

这里有一个窍门:

Select TIMESTAMPDIFF(YEAR, if(length(lp.optionValue) = 4 , concat(lp.optionValue ,'/01/01'),lp.optionValue), CURDATE())as Age from learner

相关问题