1. Agora existe uma tabela tableUser, que possui quatro campos: id, name, sex e birthday, respectivamente id=1, name=jack, sex=male, birthday=2002-01-02
A questão agora é: como descobrir a idade com base na data de nascimento e unir ano, mês e dia.
SELECT
GROUP_CONCAT(
TIMESTAMPDIFF(YEAR, birthday, CURDATE()),
'岁',
TIMESTAMPDIFF(MONTH, birthday, CURDATE()) % 12,
'月',
TIMESTAMPDIFF(
DAY,
birthday,
DATE_ADD(
CURDATE(),
INTERVAL - TIMESTAMPDIFF(
MONTH,
STR_TO_DATE(birthday, '%Y-%m-%d'),
CURDATE()
) MONTH
)
),
'天'
) AS res
FROM
(SELECT
birthday
FROM
tableUser
WHERE id = '1'
AND NAME = 'jack') AS a
Seu resultado é de 20 anos, 8 meses e 19 dias.