我正在运行此SQL:
SELECT TIMESTAMPDIFF(YEAR,CONCAT(dob_year, ‘-‘, dob_month, ‘-‘, dob_day),CURDATE())
as age FROM members
根据数据库中的时间戳计算出用户年龄.
我有3栏(dob_year / dob_month / dob_day)
上面的查询以年为单位计算出年龄,但是我需要以年和月为单位.因此,应该说10岁零2个月,而不是10岁.
解决方法:
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
标签:sql,mysql,php
来源: https://codeday.me/bug/20191122/2061811.html