我用如下语句能正常显示 SELECT CONVERT(char(10), 时间, 120) AS Expr1, SUM(数据) AS 数据 FROM 表 GROUP BY CONVERT(char(10), 时间, 120)但我在中间加一条件SELECT CONVERT(char(10), 时间, 120) AS Expr1, SUM(数据) AS 数据 FROM 表 WHERE (CONVERT(char(7), 时间, 120) = CONVERT(char(7), '2004 - 7 - 17', 120)) GROUP BY CONVERT(char(10), 时间, 120)为什么没有数据显示出来?检查过数据中有数据,请问问题出在哪里?
select convert(char(7),replace(时间,' ',''),120),sum(数据) as 数据 from table group by convert(char(7),时间,120)
select convert(char(7),cast(replace(时间,' ','') as datetime),120),sum(数据) as 数据 from table group by convert(char(7),时间,120)
我觉得按照你的要求,最好创建一个存储过程,当你输入某年时, 就对其某年的各个月份进个汇总统计。第一步:创建存储过程 create proc aa @date1 int // 用于输入年份 as select sum(数据) sum,datepart(mm,时间) date2 from table where datepart(yy,时间)=@date1 group by datepart(mm,日期) 第二步:执行存储过程,输入所需年份进行汇总。exec aa 2004 这样就可以啦
group by convert(char(7),时间,120)
insert #t (time1, n) values ('2004-1-17 5:00:00', 2)
insert #t (time1, n) values ('2004-1-17 5:00:00', 5)
insert #t (time1, n) values ('2004-2-17 5:00:00', 3)
insert #t (time1, n) values ('2004-2-17 5:00:00', 5)
insert #t (time1, n) values ('2004-3-17 5:00:00', 7)
insert #t (time1, n) values ('2004-4-17 5:00:00', 9)
insert #t (time1, n) values ('2004-1-17 5:00:00', 2)
insert #t (time1, n) values ('2004-1-17 5:00:00', 5)
insert #t (time1, n) values ('2004-2-17 5:00:00', 3)
insert #t (time1, n) values ('2004-2-17 5:00:00', 5)
insert #t (time1, n) values ('2004-3-17 5:00:00', 7)
insert #t (time1, n) values ('2004-4-17 5:00:00', 9)
Select convert(varchar(4),datepart(yyyy, time1))+'-'+
convert(varchar(4), datepart(mm, time1)) as time1, sum(n) as 数据 from #t
group by convert(varchar(4),datepart(yyyy, time1))+'-'+
convert(varchar(4), datepart(mm, time1))
SELECT CONVERT(char(10), 时间, 120) AS Expr1, SUM(数据) AS 数据
FROM 表
GROUP BY CONVERT(char(10), 时间, 120)但我在中间加一条件SELECT CONVERT(char(10), 时间, 120) AS Expr1, SUM(数据) AS 数据
FROM 表
WHERE (CONVERT(char(7), 时间, 120) = CONVERT(char(7), '2004 - 7 - 17', 120))
GROUP BY CONVERT(char(10), 时间, 120)为什么没有数据显示出来?检查过数据中有数据,请问问题出在哪里?
'2004 - 7 - 17'不是作为日期处理,而是直接作为字符串
为什么不直接写‘2004-07’呢?
group by convert(char(7),时间,120)
group by convert(char(7),时间,120)
就对其某年的各个月份进个汇总统计。第一步:创建存储过程
create proc aa
@date1 int // 用于输入年份
as
select sum(数据) sum,datepart(mm,时间) date2
from table where datepart(yy,时间)=@date1 group by datepart(mm,日期) 第二步:执行存储过程,输入所需年份进行汇总。exec aa 2004
这样就可以啦