是oracle ,你是mysql嘛。mysql你可以参考以下。
select
concat(years,'年',
months,'月',
abs(
truncate(
datediff(newer_date,
date_add(older_date, interval years*12+months month ))
,0)
),'日')
from (
select truncate(TIMESTAMPDIFF(MONTH,older_date, newer_date )/12,0) YEARS,
mod(truncate(TIMESTAMPDIFF(MONTH,older_date, newer_date ),0),12 ) MONTHS,
newer_date,
older_date
from(
select str_to_date('2018-07-11','%Y-%m-%d') older_date,
str_to_date('2019-12-04','%Y-%m-%d') newer_date
from dual
) t
) y;