代码之家  ›  专栏  ›  技术社区  ›  Md. Shamvil Hossain

mysql&php-如何从多个日期范围计算总的经验年数?

  •  0
  • Md. Shamvil Hossain  · 技术社区  · 9 年前

    我想计算每个特定用户id的总体验年和月。user_id在下表中可以是倍数,如下所示。对于user_id 14,总体验范围为2010-01-03至2013-11-30,预期结果为3年11个月。我如何在php或mysql中实现它?

    enter image description here

    1 回复  |  直到 9 年前
        1
  •  3
  •   Arcesilas Hadi    9 年前

    注释与您的案例相关但不完整。

    如果 exp_to 不可为空:

    select user_id, sum( datediff(exp_to, exp_from) +1 )
    from experience
    group by user_id;
    

    笔记:

    • 别忘了 +1 在总和中,因为对于用户25,它将返回0,而我们可以适当地认为用户工作了1天
    • 对于用户14,根据您的屏幕截图,总天数为880天:您必须计算月数(例如,使用PHP)。

    如果 导出到(_T) 可为空(如果用户仍在同一位置工作,则有意义):

    select user_id, sum( datediff( ifnull(exp_to, now()), exp_from) +1 )
    from experience
    group by user_id;
    
    推荐文章