总结一个月的时间戳差异

想要总结用户的每日工作时间,并且我有时间在时间列中签到和签出


$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

        )


)


森林海
浏览 235回答 2
2回答

幕布斯6054654

您可以使用array_sum(array_column($arr,'difference'));获得总工作时间。工作演示。

慕桂英546537

如果你想用查询来做,然后使用 rollupSELECT User_id, date, min(time) AS checkedin, max(time) AS checkedout,( (TIME_TO_SEC(TIMEDIFF(max(time), min(time))) / 60) / 60) differenceFROM profile WHERE 1 GROUP BY User_id, date WITH ROLLUP";但它会在每组之后添加额外的行以显示它们的总和,并在结果集的底部添加一行以显示总和。
打开App,查看更多内容
随时随地看视频慕课网APP