PHP从时间戳开始计算出数年和数月的年龄

时间:2013-09-30 08:53:01

标签: php mysql sql

我正在运行这个SQL:

  

SELECT TIMESTAMPDIFF(YEAR,CONCAT(dob_year,' - ',dob_month,' - ',dob_day),CURDATE())        作为成员年龄

从数据库中的时间戳计算用户年龄。

我有3列(dob_year / dob_month / dob_day)

以上查询计算了多年的年龄,但我需要数年和数月。因此,不应该说年龄为10岁,而应该说10年零2个月。

2 个答案:

答案 0 :(得分:3)

    SELECT 
       TIMESTAMPDIFF(YEAR,CONCAT(dob_year, '-', dob_month, '-', dob_day),CURDATE()) 
      as 
        years, 
        (TIMESTAMPDIFF(MONTH,CONCAT(dob_year, '-', dob_month, '-', dob_day),CURDATE()) - 
        TIMESTAMPDIFF(YEAR,CONCAT(dob_year, '-', dob_month, '-', dob_day),CURDATE())*12) 
      as 
        months 
      FROM 
        members

答案 1 :(得分:0)

这应该可以为您提供2列

1. years
2. months


SELECT 
TIMESTAMPDIFF(YEAR,CONCAT(dob_year, '-', dob_month, '-', dob_day),CURDATE()) 
as years,
TIMESTAMPDIFF(MONTH, 
    TIMESTAMPADD(YEAR,
        TIMESTAMPDIFF(YEAR,CONCAT(dob_year, '-', dob_month, '-', dob_day),CURDATE())
    ,CONCAT(dob_year, '-', dob_month, '-', dob_day)),CURDATE()) 
as 
   months 
FROM 
   members

reference