需要一個開始時間declare @Start datetime
set @Start='2008-07-21 00:00:00'
select datediff(n,@Start,時間列)/10--這個第10分鐘作為group by ---------datepart(n,時間)--只計算分鐘
set @Start='2008-07-21 00:00:00'
select datediff(n,@Start,時間列)/10--這個第10分鐘作為group by ---------datepart(n,時間)--只計算分鐘
解决方案 »
- 为何在查询分析器中批量执行下列三个存储过程时,第三个存储过程没有执行?
- 急 急 急!
- SQL语句问题
- |zyciis| 100分求: 大家来帮我看看我的表数据字段设计这样可以不可以 这里主要问的是字段的名字如何写最好
- sql 2005 Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Chinese_PRC_CI_AS" in the equal to op
- 求助:BCP出错,请帮忙看下问题出在哪里!!
- 一个SQL问题
- SQl2005数据库中只有几千万条数据 竟然占用空间106G
- 請教sql查詢每一步的具體過程
- 是不是我的机器被人黑了?
- 请问大师们:regkey.dat用什么编辑器可以编辑
- 报表用时间控制
from table
where datetime >= dateadd(minute,-10,getdate())这个语句是取最近10分钟的平均值的
开始时间就是数据表的最小时间。我就是指个循环时间段处理不好。
我定义了这样一个存储过程:
declare @starttime datetime,@endtime datetime
select avg(a1 ) into table_temp
from table where between @starttime and @endtime
该怎样去解决循环时间问题?
insert into @t
select '2008-07-21 08:10:20',5 union
select '2008-07-21 08:10:25',9 union
select '2008-07-21 08:22:10',15 union
select '2008-07-21 08:40:35',4 union
select '2008-07-21 08:41:55',20 union
select '2008-07-21 09:19:06',11 union
select '2008-07-21 11:10:20',13 union
select '2008-07-21 11:13:44',8select dateadd(mi,gp*10,t) as bt,dateadd(mi,gp*10+10,t) as et,avg(v) as v
from (
select a.t,b.v,ceiling(datediff(mi,a.t,b.t)/10) as gp
from (select min(t) as t from @t) a, @t b
) c
group by t,gp/*
bt et v
---------------------------------------- -------------------------------------- ----------------------------------------
2008-07-21 08:10:20.000 2008-07-21 08:20:20.000 7.000000
2008-07-21 08:20:20.000 2008-07-21 08:30:20.000 15.000000
2008-07-21 08:40:20.000 2008-07-21 08:50:20.000 12.000000
2008-07-21 09:10:20.000 2008-07-21 09:20:20.000 11.000000
2008-07-21 11:10:20.000 2008-07-21 11:20:20.000 10.500000(所影响的行数为 5 行)*/