我有 table - 出席
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 来计算这个结果?我怎样才能得到这个结果?
最佳答案
首先,我会在一列中使用“DATETIME”,而不是使用 DATE 列和 TIME 列 - 这样可以更轻松地比较日期并获得差异。
然后用“TIMEDIFF()”来比较次数,得到差值。
如果您的 DB-Layout 已设置,请使用 ADDTIME将不同的列合并到一个 DATETIME 列中,如下所示:
SELECT TimeDiff(AddTime(in_date,shift_in), AddTime(out_date,in_time)) AS late_time
关于php - 根据进出时间计算迟到/早到时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18718925/