我有一列包含多个值,包括出生日期和出生年份
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”时,它非常适合我,但当只给出年份时,它会抛出一个错误。我可以从刚刚给出的年份计算年龄吗?
1条答案
按热度按时间wpx232ag1#
这里有一个窍门: