每天,每周和每月的总和

时间:2017-02-06 11:09:24

标签: php mysql

我的表格中有一个名为" hours"的字段,该字段是我的工作人员每天工作的时间,它为每天创建一个新的注册表,所以它就像这样:

Date: 2017-02-06; hours: 3
Date: 2017-02-07; hours: 8
Date: 2017-02-31; hours: 8

问题是,我如何选择将本周和本月的所有工作时间(已经解决的时间)相加。

我的期望是:

这一天的总和(2017-02-06):3

本周的总和(2017-02-06-2017--2017-02-12):11

本月(2月)的总和:19

原始查询:

$db->query("select sum(hours) horasDia from table_hours where                                                            
user="'.$user.'" and DATE(inici)=date('Y-m-d'));

我是通过php做的。

编辑: 有了rahul_m的答案:

白天,

SELECT    SUM(`hours`) horasDia
FROM      table_hours 
WHERE     user="'.$user.'" and DATE(inici)= your_date;

一周,

SELECT    SUM(`hours`) horasDia
FROM      table_hours 
WHERE     user="'.$user.'" and DATE(inici)= your_date;
GROUP BY  WEEK(your_date);

月份

SELECT    SUM(`hours`) horasDia
FROM      table_hours 
WHERE     user="'.$user.'" and DATE(inici)= your_date;
GROUP BY DATE_FORMAT(your_date, "%m-%Y"); 

在本周部分,我只给出了2017-01-31(2017-01-30周)的小时数

SELECT    SUM(`hours`) horasDia
FROM      table_hours 
WHERE     user="'.$user.'" and DATE(inici)= "2017-01-31";
GROUP BY  WEEK("2017-01-31");

在月份部分,它什么也没给我。

SELECT    SUM(`hours`) horasDia
FROM      table_hours 
WHERE     user="'.$user.'" and DATE(inici)= "2017-01-31";
GROUP BY DATE_FORMAT("2017-01-31", "%m-%Y"); 

也许我做错了什么。

1 个答案:

答案 0 :(得分:1)

白天,

SELECT    SUM(`hours`) horasDia
FROM      table_hours 
WHERE     user="'.$user.'" and DATE(inici)= your_date;

一周,

SELECT    SUM(`hours`) horasDia
FROM      table_hours 
WHERE     user="'.$user.'" and DATE(inici)= your_date;
GROUP BY  WEEK(your_date);

月份

SELECT    SUM(`hours`) horasDia
FROM      table_hours 
WHERE     user="'.$user.'" and DATE(inici)= your_date;
GROUP BY  YEAR(o_date), MONTH(o_date)

根据您的要求,您将获得所有三个细节, 试一试。

修改

周的相关数据是正确的,因为它只提供该周的所有数据。

几个月,

月份

SELECT    SUM(`hours`) horasDia
FROM      table_hours 
WHERE     user="'.$user.'" and DATE(inici)= your_date;
GROUP BY  YEAR(your_date), MONTH(your_date)