group by 小问题 sql2000,sql2005

a260881071 2011-06-21 09:34:59
表里有时间字段。。

我现在要按日,按月做统计。

时间字段为returntime,被统计字段为mileage

----按日
select substring(convert(varchar,returntime ,120 ),1,10),
(max(Mileage)-min(Mileage)) as MileageSpan
from vehicletrack336
where Mileage>0 group by substring(convert(varchar,returntime ,120 ),1,10)


----按月
select (substring(convert(varchar,returntime ,120 ),1,7)+ '-01') as colDate,
(max(Mileage)-min(Mileage)) as MileageSpan
from vehicletrack336
where Mileage>0 group by substring(convert(varchar,returntime ,120 ),1,7)


这里按月统计的时候在sql2000中会报错(2005中不会),错误在'-01',去掉它就没问题.
现在我统计完成之后还要查询,想把colDate转为datetime,所以在后面加了'-01'现在在sql2000中跑不了,


我应该怎么办.




--------------------------------------帅签分割线-------------------------------------------------
...全文
45 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuexiaodong2009 2011-06-21
  • 打赏
  • 举报
回复
再加一次转换,楼上的方法可以
GoAwayZ 2011-06-21
  • 打赏
  • 举报
回复
select cast((convert(varchar(7),returntime,120)+'-01') as datetime),
(max(Mileage)-min(Mileage)) as MileageSpan
from vehicletrack336
where Mileage>0 group by cast((convert(varchar(7),returntime,120)+'-01') as datetime)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧