Php 如何计算一个月内每周使用的总时间?

Php 如何计算一个月内每周使用的总时间?,php,mysql,Php,Mysql,在mysql数据库中,我有一个名为time\u-use的字段,类型为time,它存储每天花费的总时间,该表包含每个月的记录。现在,我想查找用户在所选月份每周花费的总时间。我搜索了一下,但找到了一个很好的查询,可以查找整个月的总时间,即: SELECT Sec_to_Time(Sum(Time_to_Sec(time_utilize))) FROM attendance WHERE staff_id = 'sajid' 现在,我可以找到每个月每周使用的总时间的总和吗 假设考勤表有一个日期列考勤_

在mysql数据库中,我有一个名为time\u-use的字段,类型为time,它存储每天花费的总时间,该表包含每个月的记录。现在,我想查找用户在所选月份每周花费的总时间。我搜索了一下,但找到了一个很好的查询,可以查找整个月的总时间,即:

SELECT Sec_to_Time(Sum(Time_to_Sec(time_utilize))) FROM attendance WHERE staff_id = 'sajid'
现在,我可以找到每个月每周使用的总时间的总和吗


假设
考勤
表有一个日期列
考勤_日期
,下面的查询可能会为您提供当月每周使用的总时间:

SELECT WEEK(`attendance_date`) `attendance_week`,
SEC_TO_TIME(SUM(TIME_TO_SEC(`time_utilize`))) `attendance_time_utilized`
FROM `attendance`
GROUP BY `attendance_week`;
在上述查询中,
出勤周
计算为一年中的一周,介于1和52之间

另一种输出形式可能是将周显示为1,2,3,4。为此,您可以尝试以下查询:

SELECT (`attendance_week` - `min_week` + 1) `att_week`, `attendance_time_utilized`
FROM (
    SELECT WEEK(`ATT`.`attendance_date`) `attendance_week`,
    SEC_TO_TIME(SUM(TIME_TO_SEC(`ATT`.`time_utilize`))) `attendance_time_utilized`,
    `T1`.`min_week`
    FROM `attendance` `ATT`
    INNER JOIN (SELECT MIN(WEEK(`attendance_date`)) `min_week` FROM `attendance`) T1
    GROUP BY `attendance_week`
) T2;
希望以上查询能帮助您获得所需的结果。请根据您的架构更改表名和列名