我呼吁人与ID,姓名,出生日期3列,样本数据如下表:
INSERT INTO person(id,name,dob) VALUES
(1,'Ton','1964-01-02'),
(2,'Luck','1960-01-20').....
select
name, dob,
current_timestamp() as curren_date,
timestampdiff(year, dob, curdate()) as age,
timestampdiff(month, dob, curdate()) as age,
timestampdiff(day, dob, curdate()) as age,
date_format(dob, '%m'),
month(curdate()),
timestampdiff(month, date_format(dob, '%m'),month(curdate())),
DATEDIFF(dob, curdate()) AS DateDiff
from
person
所以我不知道我错过了,上面的代码可以计算years-年龄不是很准确,我相信,但最好我要计算的人的年,月,日的年龄,例如吨55年1个月3天,并要计算他的下一个生日到期日,如一个生日日期:11本月还可阅读10天等
谢谢
您可以准确地计算年龄年:
select (case when date_format(dob, '%m-%d') >= date_format(now(), '%m-%d')
then year(now()) - year(dob)
else year(now()) - year(dob) - 1
end)
我相信,这个处理所有边缘的情况下 - 比如闰年。它准确地计算年龄了新的一天。
我从来没有去过的年/月/日的风扇,因为我觉得定义是不清楚。你将需要提供你想要什么样。