sql语句!PTA习题遇到的疑问

在做题(PTA)的时候有一题 求年龄用了

year(now())-year(SBdate)

会显示答案出错,换成

timestampdiff(year,SBdate,now())

就对了,请问一下是什么原因

还有就是groupby 和avg 一起用的时候也有错误,所以我改成下面的做法就对了

img

回答不易,求求您采纳点赞哦

YEAR(now())-YEAR(SBdate) 这种方式计算年龄的结果是不精确的,因为它只是把当前日期的年份与出生日期的年份相减得到的结果。

而TIMESTAMPDIFF(YEAR,SBdate,NOW()) 这种方式更精确,因为它能计算出出生日期与当前日期相差的完整年份数。因此第二种方式更适合求年龄。