0

私はテーブルを持っています - 出席

staff_id |   in_date  |  out_date  | shift_in | shif_out | in_time  | out_time 
    1      2013-09-10   2013-09-10   06-30-00   15-00-00   07-00-00   15-00-00
    2      2013-09-10   2013-09-11   20-00-00   06-00-00   19-00-00   06-00-00
    3      2013-09-10   2013-09-11   23-00-00   06-00-00   23-30-00   07-00-00

私は結果を得る必要があります

staff_id | late_time | early_time | extra_time 
    1      00-30-00    00-00-00     00-00-00
    2      00-00-00    01-00-00     00-00-00
    2      00-30-00    00-00-00     01-00-00

mysql クエリ自体から結果を取得できますか、またはこれを計算するために PHP を使用する必要がありますか? どうすればこの結果を得ることができますか?

4

1 に答える 1

0

まず、DATE 列と TIME 列を使用する代わりに、1 つの列で「DATETIME」を使用します。これにより、日付を比較して違いを取得しやすくなります。

次に、「TIMEDIFF ()」を使用して時間を比較し、差を取得します。

DB レイアウトが既に設定されている場合は、ADDTIMEを使用して、次のように異なる列を 1 つの DATETIME 列に結合します。

SELECT TimeDiff(AddTime(in_date,shift_in), AddTime(out_date,in_time)) AS late_time
于 2013-09-10T12:34:32.677 に答える