可以实现,我给个大概思路:
首先:你找出最早和最近的两条数据对应的时间,然后,利用datediff函数计算这两个时间
相差多少个小时.其次:利用循环,从最近一条数据对应的时间起,向前推进,每循环一次向前减一个小时,可以
使用函数dateadd()来实现.
首先:你找出最早和最近的两条数据对应的时间,然后,利用datediff函数计算这两个时间
相差多少个小时.其次:利用循环,从最近一条数据对应的时间起,向前推进,每循环一次向前减一个小时,可以
使用函数dateadd()来实现.
解决方案 »
- SQL语言的文法,应该属于LR还是SLR还是LALR?
- 如何通过一条SQL语句得到如下效果,在线等!!!!!
- 新开的sql交流群,欢迎大家加入交流
- 一个关于列属性设置的问题
- 时间格式转换问题
- 已实现存储过程导出数据库表中各个日期的记录到文本文件中,如何在每个文本文件中插入各字段名以方便读取?
- 用Command对象运行有多条sql语句 的字符串的问题.
- 数据合并!
- SQL2005 收缩无效的问题
- 关于统计各SQLserver应用者的联系方式!
- sql语句优化问题(祥见http://community.csdn.net/Expert/topic/4416/4416205.xml?temp=.4329187)
- 从vfp把数据导入到sql2k里面
--测试:create table data(Mvalue decimal(18,4), Mdate Datetime)
insert into data
select 12.1202 ,' 2005-02-28 07:23:00.000'
union all
select 12.3443 ,' 2005-02-28 06:21:00.000'
union all
select 11.1212 ,'2005-02-28 08:22:00.000'
union all
select 23.2324,' 2005-02-28 05:18:00.000'
union all
select 11.1212,' 2005-02-28 04:22:00.000'
gocreate proc search55
as
declare @cc table(a decimal(18,4), b Datetime)
declare @time datetime
declare @i int
set @i=1
select top 1 @time=Mdate from data order by Mdate desc
insert into @cc select top 1 * from data order by Mdate desc
while @i<13
begin
exec('select * into #b from @data where datediff(hour,Mdate,'+@time+')=1')
set @i=@i+1
endselect * from @cc
go
改为:
exec('select * into #b from @data where datediff(hour,Mdate,'+@time+')='+@i)