Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQL,基于日期时间行的行总和_Php_Mysql_Datetime_Sum - Fatal编程技术网

PHP MySQL,基于日期时间行的行总和

PHP MySQL,基于日期时间行的行总和,php,mysql,datetime,sum,Php,Mysql,Datetime,Sum,我试图根据日期时间行计算人数总和 我的桌子是这样的: id | date | person | ---+-------------------+--------+ 1 |2013-12-26 00:00:00| 3 | ---+-------------------+--------+ 2 |2013-12-26 00:00:00| 2 | ---+-------------------+--------+ 3 |2013-12-26

我试图根据日期时间行计算人数总和

我的桌子是这样的:

id | date              | person |
---+-------------------+--------+
1  |2013-12-26 00:00:00|  3     |
---+-------------------+--------+    
2  |2013-12-26 00:00:00|  2     |
---+-------------------+--------+ 
3  |2013-12-26 00:00:00|  3     |
---+-------------------+--------+ 
4  |2018-10-21 00:00:00|  3     |
---+-------------------+--------+
我想让我的查询做的是:根据日期对所有人员求和。但我认为我的问题不是询问它自己(或者可能是),而是日期时间。我有点像

$date = "26.12.2013";
$date = strtotime(date("d.m.Y", strtotime($date)));
$date = date("Y-m-d", $date); 
$query= "SELECT '$date', SUM('person') totalperson FROM table_name WHERE date='$date' GROUP BY '$date'";
但返回的数字是2016年,预计为8:)

我希望我的问题足够清楚

SELECT 
    date, 
    SUM(person) totalperson 
FROM table_name 
WHERE DATE(date) = '$date' 
GROUP BY date
使用DATE()函数

您正在日期时间列中提供日期字符串

SUM(`person`) 
使用DATE()函数

您正在日期时间列中提供日期字符串

SUM(`person`) 
使用反勾号作为列名,这是对字符串的求和


使用反勾号作为列名,您正在使用字符串

您使用什么数据库引擎

无论如何,这应该是可行的:

$date = "2013-12-26 00:00:00";
$query = "
  SELECT date, SUM(person) totalperson 
  FROM table_name WHERE date='$date' 
  GROUP BY date
";

你用什么数据库引擎

无论如何,这应该是可行的:

$date = "2013-12-26 00:00:00";
$query = "
  SELECT date, SUM(person) totalperson 
  FROM table_name WHERE date='$date' 
  GROUP BY date
";

无法测试它是否会有帮助,但不会对列值进行
group by
,但列名
group by date
如果不使用`around its,列名date可能会导致问题。按静态值分组没有任何意义–您希望按列分组,而不是按特定值分组。(如果您想通过值将结果集限制为某个特定的日期,这就是WHERE子句的作用。)我知道,几小时前我确实有正确的查询,但我回显了错误的查询结果。因为查询结果是数组,其中[0]是日期,[1]是实际人数:P我应该第一次计算出结果是2016年,因为2013年(年)+3是2016年。无法测试它是否有帮助,但不在列值上按
分组
,但列名
按日期分组
如果不使用`环绕它,列名日期可能会导致问题按静态值分组没有任何意义–您希望按列分组,而不是按特定值分组。(如果您想通过值将结果集限制为某个特定的日期,这就是WHERE子句的作用。)我知道,几小时前我确实有正确的查询,但我回显了错误的查询结果。因为查询结果是数组,其中[0]是日期,[1]是实际人数:P我应该第一次计算出结果是2016年,因为2013年+3年是2016年。谢谢,这有助于=)加上我回显了错误的查询结果。结果是日期和总人数。谢谢,这有助于=)加上我回显了错误的查询结果。结果是日期和总人数。