Mysql Time()函数返回Null
我有一个表,它有一个'duration'列,该列以时间格式存储持续时间,即数据类型为'time'。当我根据特定的分组条件计算此“持续时间”列的平均值时,它给出以下输出: 以下是查询: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
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()
仅以任何数字格式处理数据。所以时间值被转换为数值。所以计算出的平均值是错误的<代码>平均值()
不适用于所需的操作。