2013-09-30 24 views
3

我运行这个SQL:PHP工作了年龄在年和月从时间戳

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

从数据库中的时间戳工作了用户青睐。

我有3列(dob_year/dob_month/dob_day)

上述查询工作了年龄在几年,但我需要它的年和月。所以不要年龄10岁,应该说10岁2个月大。

回答

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 
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

+0

不是100%确定的最后一部分工作,但尝试让我们看看会发生什么:) –

+0

这一个不工作时,前一个显示的东西像13年166个月(13年166个月) – user2710234

+0

它给你什么错误:) –