如何在一个月的每个星期汇总总时间?

时间:2011-06-18 11:35:29

标签: php mysql

在mysql db中,我有一个名为 time_utilize 的字段,类型为时间,用于存储一天的总时间,该表包含每个月的记录。现在,我想查找用户在所选月份的每周中花费的总时间。我搜索了那个但是我找到了一个很好的查询来查找整个月的总时间花费:

SELECT Sec_to_Time(Sum(Time_to_Sec(time_utilize))) FROM attendance WHERE staff_id = 'sajid'

现在我可以在一个月的每个星期找到总时间总和?

The below image is the resultant table

1 个答案:

答案 0 :(得分:0)

假设attendance表格的日期列为attendance_date,则以下查询可能会为您提供当月每周使用的总时间:

SELECT WEEK(`attendance_date`) `attendance_week`,
SEC_TO_TIME(SUM(TIME_TO_SEC(`time_utilize`))) `attendance_time_utilized`
FROM `attendance`
GROUP BY `attendance_week`;

在上面的查询中,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;

希望上述查询可以帮助您获得所需的结果。请根据您的架构更改表名和列名。