人的年龄计算

问题描述 投票:0回答:1

我呼吁人与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天等

谢谢

mysql sql database
1个回答
0
投票

您可以准确地计算年龄年:

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)

我相信,这个处理所有边缘的情况下 - 比如闰年。它准确地计算年龄了新的一天。

我从来没有去过的年/月/日的风扇,因为我觉得定义是不清楚。你将需要提供你想要什么样。

© www.soinside.com 2019 - 2024. All rights reserved.