我是mysql的新手,我目前遇到查询问题。我需要在一周内每天获得每项活动的平均持续时间。日期格式如:'2000-01-01 01:01:01',但我想摆脱01:01:01的事情,只关心日期。我该怎么做?
表格是这样的:
record_id int(10) NOT NULL,
activity_id varchar(100) NOT NULL,
start_time datetime NOT NUll,
end_time datetime NOT NULL,
duration int(10) NOT NULL;
感谢。
答案 0 :(得分:0)
如果我理解,您希望按不同的活动时间进行分组,并查看每个活动开始和结束之间的平均天数。这应该为你做。
SELECT activity_id, avg(DATEDIFF(end_time, start_time)) AS Average
FROM tablename
GROUP BY activity_id, DAYOFWEEK(start_time)
编辑:误解,你希望它在当天被分解,所以这应该拉动每个组,按照start_time所在的星期几分解,然后是start_time和end_time之间的平均天数。 / p>
答案 1 :(得分:0)
您可以执行以下操作
select activity_id, dayofweek(datetime) as day, avg(duration) as average
from table_name where datetime between start_date and end_date
group by activity_id,dayofweek(datetime)
答案 2 :(得分:0)
您可以使用date_format(end_time, '%Y%m%d')将其转换为白天的可排序值。把它放在表达式的组中,这应该做你想要的。