在MySQL中计算日期之间的工作时间
我正在尝试创建SQL查询,以计算两个日期2015-01-01 12:12:12之间的小时数。此查询的复杂性仅限于周一至周五上午8点至下午6点之间的汇总时间 我需要它来计算我们的螳螂BT系统中记录的问题需要多长时间才能得到解决。我们的客户可以在工作时间之外记录问题,但我只想根据我们的工作时间计算时间 我们计算记录问题的日期/时间、提交日期与解决问题的最大更新日期和解决状态之间的差异。困难在于一个问题可以解决,然后在将来重新打开。通过使用最长更新日期,我的脚本包括问题处于已解决状态的天数,这是不正确的。它应该只包括问题开放时的天数在MySQL中计算日期之间的工作时间,mysql,sql,mantis,Mysql,Sql,Mantis,我正在尝试创建SQL查询,以计算两个日期2015-01-01 12:12:12之间的小时数。此查询的复杂性仅限于周一至周五上午8点至下午6点之间的汇总时间 我需要它来计算我们的螳螂BT系统中记录的问题需要多长时间才能得到解决。我们的客户可以在工作时间之外记录问题,但我只想根据我们的工作时间计算时间 我们计算记录问题的日期/时间、提交日期与解决问题的最大更新日期和解决状态之间的差异。困难在于一个问题可以解决,然后在将来重新打开。通过使用最长更新日期,我的脚本包括问题处于已解决状态的天数,这是不正确
SELECT
proj.name,
bugs.id,
summary,
users2.username AS Assigned_to,
CASE bugs.status
WHEN '80' THEN 'Resolved'
WHEN '90' THEN 'Closed'
END AS Status,
bugs.date_submitted AS date_submitted,
MAX(date_modified) AS last_date_modified
FROM
mantis_bug_table bugs
LEFT JOIN mantis_bugnote_table notes ON notes.bug_id = bugs.id
INNER JOIN mantis_bug_history_table hist ON bugs.id = hist.bug_id
LEFT JOIN mantis_user_table users2 ON users2.id = bugs.handler_id
INNER JOIN mantis_project_table proj ON proj.id = bugs.project_id
WHERE
bugs.project_id = 102
AND hist.field_name = 'status'
AND bugs.status IN (80,90)
AND date_modified >= '2015-01-01'
GROUP BY
summary;
是为SQL编写的,但可以在MySQL中轻松复制
您只需定义您的工作时间,然后参考这些时间来计算时间。您是否需要考虑公共假日或您所在组织的特定事项?如果答案是肯定的,那么最好的第一步可能是创建并填充一个日历表。是的,我必须考虑公共假日和上午8点到下午6点的工作时间。