Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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
Mysql Time()函数返回Null_Mysql_Sql - Fatal编程技术网

Mysql Time()函数返回Null

Mysql Time()函数返回Null,mysql,sql,Mysql,Sql,我有一个表,它有一个'duration'列,该列以时间格式存储持续时间,即数据类型为'time'。当我根据特定的分组条件计算此“持续时间”列的平均值时,它给出以下输出: 以下是查询: select avg(Cactive_duration) as 'duration' from table_name group by column_name; 但当我尝试将它们转换为时间格式时,输出如下: 以下是查询: select time(avg(Cactive_duration)) as 'durati

我有一个表,它有一个'duration'列,该列以时间格式存储持续时间,即数据类型为'time'。当我根据特定的分组条件计算此“持续时间”列的平均值时,它给出以下输出:

以下是查询:

select avg(Cactive_duration) as 'duration'
from table_name
group by column_name;

但当我尝试将它们转换为时间格式时,输出如下:

以下是查询:

select time(avg(Cactive_duration)) as 'duration'
from table_name
group by column_name;


非常感谢您的帮助。数据库是MySQL

简单的回答是:MySQL无法聚合时间

最好的情况是,MySQL通过提出一个例外承认了这一点。相反,它将时间转换为某个数字(似乎是内部表示),并处理该数字,结果是一个没有人想要的数字

将时间转换为秒,聚合这些时间,然后再转换回时间:

select sec_to_time(avg(time_to_sec(cactive_duration))) as duration
from table_name
group by column_name;

(1) 用您正在使用的数据库标记您的问题。(2)
持续时间的数据类型是什么?(3) 您的查询提到了两列,但您的数据只有一列。@GordonLinoff我已经做了必要的更改。也是1。数据库是MySQL。2) 类型是“时间”。3.)该查询仅提及1列提供表的创建表脚本,将其数据插入脚本,并显示所提供数据的所需输出。
AVG()
仅以任何数字格式处理数据。所以时间值被转换为数值。所以计算出的平均值是错误的<代码>平均值()
不适用于所需的操作。