从时差中提取年/月/日

时间:2016-10-25 08:00:31

标签: mysql date difference

我需要计算人员从PerBeginDate到PerEndDate字段的工作年龄。格式必须为y / m / d,例如1/5/10(1年5个月10天)或0/0/30(30天)。

1 个答案:

答案 0 :(得分:0)

这是我能想到的最接近的解决方案

 CONCAT(IFNULL(YEAR(FROM_DAYS(DATEDIFF(PerEndDate,PerBeginDate))),0)," / ",
  MONTH(FROM_DAYS(DATEDIFF(ADDDATE(PerEndDate,INTERVAL 1 YEAR),PerBeginDate)))-1," / ",
  DAY(FROM_DAYS(DATEDIFF(ADDDATE(PerEndDate,INTERVAL 1 YEAR),PerBeginDate)))-1)

INTERVAL 1 YEAR部分是为了防止DATEDIFF显示为0。