複数のチケットを持っており、PHP のサービス レベル アグリーメントに基づいてレポートを提供したいと考えています。
新しいチケットは、特定のタイムスタンプでステータスが「新規」になり、しばらくすると特定のタイムスタンプでステータスが「クローズ」になる場合があります。
これら 2 つのタイムスタンプの差を計算する必要がありますが、関連するのは月曜日から金曜日までの勤務時間 (午前 8 時から午後 4 時 30 分) のみです。したがって、チケットが金曜日の午後 4 時に作成され、次の月曜日の午前 9 時にクローズされた場合、経過時間は 1.5 時間になります。
データベースから除外された結果を取得する方法を知っている人はいますか?
データベースは mysql データベースで、バグ追跡システムはオープン ソースの BTS Mantis Bugtracker です。
データベーステーブルの非常に単純な部分:
テーブルのバグ:
ID | ステータス | date_created (タイムスタンプ) | last_modified (タイムスタンプ)
テーブル履歴
ID | bug_id (参照バグ) | status_old | status_new | date_modified (タイムスタンプ)
PHP での私のクエリ: 特定の時間枠でステータス 30 に設定されたすべてのバグを取得します。最高の SLA レベルの場合、このフレームは 0 ~ 2 時間です。クエリは正常に機能しますが、時間枠は勤務時間に関係ありません...
ID として bug.id をバグとして mantis_bug_table、履歴として mantis_bug_history_table として選択します。 - bug.date_submitted) > '{$timeframe_start}'";