1

従業員が仕事に遅れたときに従業員の出席などをカウントする簡単なプロジェクトを作成しています。遅延時間を入力する必要があります。たとえば、従業員が 30 分遅れて出勤したため、フィールドに 30:00 と入力します。 00:30:00 、各月、週、または日の終わりに、30 分 + 1H + 25 分などの時間を計算し、各月の終わりにそのすべての時間の合計を取得しますレポートの分、レポートにはその時間の平均と合計が表示されます。

次のフィールド ( Time Logged in Duration 、 Total Talking Time 、 Work 、 Time Not ready Time ) 時間と分を計算したい。

レポートに表示されるのは、入力した時間の合計を AM/PM の時間として表示していることですが、これは探しているものではありません。

これはMySQLクエリです

SELECT
ID,
`Date`,
`Shift Time`,
`In charge`,
`Agent Name`,
Attendance,
Timing,
`Logged in Duration`,
`Total Talking Time`,
`Work Time`,
`Not ready Time`,
`Calls Handled`,
RNA,
`Shift Calls Presented`,
`Shift Calls Handled`,
`HD Calls Abandoned`,
`Upload Your Report`
FROM `shift report`
4

1 に答える 1

0

開発者、ユーザーがこれまでに直面した時間価値関連の問題を要約するという観点から、回答を投稿したいと思います。フォーマットだけではありません。

合計時間の合計がエンジンによって誤って計算される可能性があることに気づいているかもしれませんし、気づいていないかもしれません。さらに、値があってもmysqlエンジンがnullを返す可能性があります。

時間値を追加/集計すると、数値として変換され、結果は数値形式になります。次のような時間値を合計しようとすると:

例: 01:38:50, 03:40:25 --> 理想的には 05:19:15 になるはずです

  • Sum(上記の 2 つ) を実行すると --> 数値が得られます
  • CAST(Sum(上記の 2 つ) AS TIME) を使用すると --> null が返されます
  • 私のコード スニペットには、他に 2 つの可能性が示されています。

サンプル コード リファレンス。先ほど説明したさまざまな結果が表示されます。今のところ、3 方向フォーマットが役に立ちそうです。

time_format(sec_to_time(sum(time_to_sec(logged_duration))),'%h:%i:%s') total_log_duration

MySQL に報告されたバグはまだ修正されていません。

于 2012-11-16T05:00:48.557 に答える