我正在运行这个 SQL:
从成员中选择 TIMESTAMPDIFF(YEAR,CONCAT(dob_year, '-', dob_month, '-', dob_day),CURDATE()) 作为年龄
从数据库中的时间戳计算用户年龄。
我有 3 列(dob_year / dob_month / dob_day)
上面的查询以年为单位计算年龄,但我需要以年和月为单位。因此,与其说年龄是 10 岁,不如说是 10 岁零 2 个月大。
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
这应该可以为您提供 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