首页 > 解决方案 > 计算年龄天数的公式是什么?

问题描述

目前我有一个问题,我无法知道某件事的年龄。我试图让它看起来像:

2 个月零 14 天



DECLARE n_yr INT(11);

    DECLARE n_mon INT(4);

    DECLARE n_day INT(4);   

  

    SELECT TIMESTAMPDIFF( YEAR, prev_dte, cur_dte ) INTO n_yr;

    SELECT TIMESTAMPDIFF( MONTH, prev_dte, cur_dte ) % 12 INTO n_mon;

    SELECT FLOOR( TIMESTAMPDIFF( DAY, prev_dte, cur_dte ) %30.5375 ) INTO n_day;

  

    IF n_yr THEN

        RETURN CONCAT(n_yr, IF(n_yr > 1, ' years', ' year'));

    ELSEIF n_mon THEN

        RETURN CONCAT(n_mon, IF(n_mon > 1, ' months ', ' month '), n_day, IF(n_day > 1, ' days', ' day'));

    ELSE

        RETURN CONCAT(n_day, IF(n_day > 1, ' days', ' day'));

    END IF;

标签: sql

解决方案


请参阅此示例。

  1. 我计算从开始到结束日期的月份
  2. 我计算开始日期 + 月份到结束日期的天数
    Start date = 1959-02-01
    End.  date.  2003-05-04
    SELECT CONCAT(
      TIMESTAMPDIFF(MONTH,'1959-02-01','2003-05-04'),
      ' MONTH AND ',
      TIMESTAMPDIFF(DAY,'1959-02-01' + INTERVAL 
      TIMESTAMPDIFF(MONTH,'1959-02-01','2003-05-04') MONTH,'2003-05-04')
      ,' DAYS');

输出

531 MONTH AND 3 DAYS

推荐阅读