计算MySQL

时间:2015-06-24 16:25:44

标签: mysql sql mantis

我正在尝试创建计算两个日期之间的小时数的SQL查询(2015-01-01 12:12:12)。此查询的复杂性仅在周一至周五上午8点至下午6点之间。

我需要它来计算我们的Mantis BT系统中记录的问题需要多长时间才能得到解决。我们的客户可以在工作时间之外记录问题,但我只想根据工作时间计算小时数。

我们计算记录问题的日期/时间(submitted_date)与问题解决时的差异(最大updated_date和“已解决”状态)。困难在于可以解决问题,然后在将来重新开放。通过使用最大的updated_date,我的脚本包括问题处于“已解决”状态的日期,这是不正确的。它应该只包括问题开放时的日子。

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;

1 个答案:

答案 0 :(得分:0)

This tutorial是为SQL编写的,但可以在MySQL中轻松复制。

您只需要定义工作时间,然后参考这些来计算时间。