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

首先,我会在一个列中使用“DATETIME”,而不是有一个 DATE 列和一个 TIME 列 - 这使得比较日期和获取差异变得更加容易。

然后使用“ TIMEDIFF ()”比较时间得到差值。

如果您的 DB-Layout 已经设置,请使用ADDTIME将不同的列组合成一个 DATETIME 列,如下所示:

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