mysql & php - 如何从多个日期范围计算总经验年数?
mysql & php - How to calculate total year of experience from multiple date range?
我想计算每个特定用户 ID 的总体验年份和月份。 user_id 在 table 中可以是多个,如下所示。这里对于user_id 14,总经验范围将从2010-01-03到2013-11-30,预期结果为3年11个月。我怎样才能在 php 或 mysql 中做到这一点?
评论与您的案例相关但不完整。
如果 exp_to
不可为空:
select user_id, sum( datediff(exp_to, exp_from) +1 )
from experience
group by user_id;
备注:
- 不要在总和中忘记
+1
,因为对于用户 25 它将 return 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;
我想计算每个特定用户 ID 的总体验年份和月份。 user_id 在 table 中可以是多个,如下所示。这里对于user_id 14,总经验范围将从2010-01-03到2013-11-30,预期结果为3年11个月。我怎样才能在 php 或 mysql 中做到这一点?
评论与您的案例相关但不完整。
如果 exp_to
不可为空:
select user_id, sum( datediff(exp_to, exp_from) +1 )
from experience
group by user_id;
备注:
- 不要在总和中忘记
+1
,因为对于用户 25 它将 return 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;