我的表格中有一个名为" 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");
也许我做错了什么。
答案 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)