【问题标题】:mysql & php - How to calculate total year of experience from multiple date range?mysql & php - 如何从多个日期范围计算总经验年数?
【发布时间】:2016-05-11 01:54:17
【问题描述】:

我想计算每个特定用户 ID 的总经验年份和月份。 user_id 在表中可以是多个,如下所示。这里对于user_id 14,总经验范围是从2010-01-03到2013-11-30,预期结果是3年11月。我怎样才能在 php 或 mysql 中做到这一点?

【问题讨论】:

标签: php mysql date-range


【解决方案1】:

评论与您的​​案例相关但不完整。

如果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)。

如果exp_to 可以为空(如果用户仍在同一位置工作,这很有意义):

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

【讨论】:

  • 哦,这就是我要找的。谢谢:)
猜你喜欢
  • 2012-06-25
  • 1970-01-01
  • 2015-07-24
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
相关资源
最近更新 更多