我正在运行这个SQL:
SELECT TIMESTAMPDIFF(YEAR,CONCAT(dob_year,' - ',dob_month,' - ',dob_day),CURDATE()) 作为成员年龄
从数据库中的时间戳计算用户年龄。
我有3列(dob_year / dob_month / dob_day)
以上查询计算了多年的年龄,但我需要数年和数月。因此,不应该说年龄为10岁,而应该说10年零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