想总结用户的日常工作时间,而我在时间栏中有时间进行签入和签出
$sql=" SELECT User_id, date, min(time) AS checkedin, max(time) AS checkedout,( (TIME_TO_SEC(TIMEDIFF(max(time), min(time))) / 60) / 60) difference
FROM profile WHERE 1 GROUP BY User_id, date";
$previousdata = DB::select($sql);
我从使用过的sql查询中获得了这个数组,我想添加一个月的数据我每天得到的差值。 不用担心日期格式,我来自尼泊尔,正在使用尼泊尔日期。
Array
(
[0] => stdClass Object
(
[User_id] => 1
[date] => 2076-02-06
[checkedin] => 12:11:40
[checkedout] => 19:11:43
[difference] => 7.00083333
)
[1] => stdClass Object
(
[User_id] => 1
[date] => 2076-02-08
[checkedin] => 12:15:40
[checkedout] => 15:15:48
[difference] => 3.00222222
)
)
答案 0 :(得分:0)
答案 1 :(得分:0)
如果要通过查询进行操作,请使用rollup
SELECT User_id, date, min(time) AS checkedin, max(time) AS checkedout,( (TIME_TO_SEC(TIMEDIFF(max(time), min(time))) / 60) / 60) difference
FROM profile WHERE 1 GROUP BY User_id, date WITH ROLLUP";
但是它将在每组之后添加其他行以显示它们的总和,并在结果集的底部添加一个总和。