现在有这么一个表,里有一个日期时间字段(2007-1-21 19:15:00)这样的格式,有日期,和时间。但现在有这样一个需求,就按日统计,按周统计,按月统计。不知对日,对周,对月的时间计算是怎么样?--------------------------------
举个例:日期时间 数量
2007-1-1 19:31:25 56
2007-1-1 21:31:25 35
2007-1-1 35:31:25 43
2007-1-2 19:31:25 34
2007-1-3 35:31:25 35
2007-1-3 21:31:25 65如何求到每天的数量平均值呢?
举个例:日期时间 数量
2007-1-1 19:31:25 56
2007-1-1 21:31:25 35
2007-1-1 35:31:25 43
2007-1-2 19:31:25 34
2007-1-3 35:31:25 35
2007-1-3 21:31:25 65如何求到每天的数量平均值呢?
select 日期时间,avg(数量) as 平均数量
group by convert(varchar(10),日期时间,120)
group by convert(varchar(7),'2007-1-21 19:15:00',120) --对月
select 日期时间,avg(数量) as 平均数量
group by month(日期时间)
对月,按convert(varchar(7),日期字段名,120)分组。
对年,按convert(varchar(4),日期字段名,120)分组。
select 日期时间,avg(数量) as 平均数量
group by datepart(week,日期时间)
select datepart(yy,'2007-1-21 19:15:00')--对年select datepart(mm,'2007-1-21 19:15:00')--对月select datepart(dd,'2007-1-21 19:15:00')--对天
insert T select '2007-1-1 19:31:25', 56
union all select '2007-1-1 21:31:25', 35
union all select '2007-1-1 15:31:25', 43
union all select '2007-1-2 19:31:25', 34
union all select '2007-1-3 15:31:25', 35
union all select '2007-1-3 21:31:25', 65--按日统计
select 日期时间=convert(char(10), 日期时间, 120), 数量=sum(数量)
from T
group by convert(char(10), 日期时间, 120)--按周统计
select 日期时间=datepart(week, 日期时间), 数量=sum(数量)
from T
where year(日期时间)=year(getdate())
group by datepart(week, 日期时间)--按月统计
select 日期时间=convert(char(7), 日期时间, 120), 数量=sum(数量)
from T
group by convert(char(7), 日期时间, 120)