SQL查询以n年和m个月的形式列出员工的服务长度

tin*_*ina 0 mysql

我有一个名为employee的表列

empid,empname,joining date,retiring date  
1,employee,2000-1-1,2010-3-1
Run Code Online (Sandbox Code Playgroud)

我必须获取员工的服务期限.输出应如下:

years  months
10      2
Run Code Online (Sandbox Code Playgroud)

egg*_*yal 5

您可以使用MySQL的TIMESTAMPDIFF()函数来获取整年的数量和加入和退休日期之间的整月数,然后采用后一个模12来获得自上一年以来的月数:

SELECT empname,
       TIMESTAMPDIFF(YEAR,  `joining date`, `retiring date`)      AS years,
       TIMESTAMPDIFF(MONTH, `joining date`, `retiring date`) % 12 AS months
FROM   employee
Run Code Online (Sandbox Code Playgroud)

sqlfiddle上看到它.