给出一个日期范围 例如'2007-7-1'至'2007-8-30'
我想得到以14天为间隔的日期段,想得到的结果如下:时间 间隔
2007-7-1 0
2007-7-15 1
2007-7-29 2
2007-8-12 3
2007-8-26 4请各位大侠指教
我想得到以14天为间隔的日期段,想得到的结果如下:时间 间隔
2007-7-1 0
2007-7-15 1
2007-7-29 2
2007-8-12 3
2007-8-26 4请各位大侠指教
解决方案 »
- 求秒数转成时分秒的最简捷的方法
- 数据叠加
- 通过microsoft jet oledb 4.0将excel2000文件改进sql2000
- 一个关于时间段查询的问题,高手们快来解决一下啊???在线急等
- 请教高手一个统计SQL语句的写法?解决就给分?急,。。。
- OpenQuery查询引用双引号报错
- sql server建表问题?
- 请教vfp高手,vfp如何实现用一个表的第10条到第20条记录生成另一个表?
- 90分抢答!ORA-01628: 为倒回区段 10 达到 max # extents (RB17)
- 请教存储过程的问题,急!!!
- 公司的内部管理软件,涉及到两个数据库,有必要将两个数据库整合在一起吗?还是原样不动,在程序中处理.内详
- 一个很烦的语句,不知道怎么写了
insert into tb values('2007-7-1')
insert into tb values('2007-7-15')
insert into tb values('2007-7-29')
insert into tb values('2007-8-12')
insert into tb values('2007-8-26')
goselect a.时间 , 间隔 = datediff(day,(select min(时间) from tb),a.时间)/14 from tb adrop table tb/*
时间 间隔
------------------------------------------------------ -----------
2007-07-01 00:00:00.000 0
2007-07-15 00:00:00.000 1
2007-07-29 00:00:00.000 2
2007-08-12 00:00:00.000 3
2007-08-26 00:00:00.000 4(所影响的行数为 5 行)
*/
set @i=0
while (datediff(dd,dateadd(dd,14*@i,'2007-07-01'),'2007-08-30')>=0)
begin
insert into table1
select dateadd(dd,14*@i,'2007-07-01'),@i
set @i=@i+1
endselect * from table1drop table table1
如果tb表中的时间缺少某个时间范围内的 那结果肯定不全了
select @D1='2007-7-1',@D2='2007-8-30'declare @N int,@Seed int
select @N=datediff(day,@D1,@D2)/14+1,@Seed=datediff(day,0,@D1)exec
('
select top '+@N+' iniDate=identity(int,0,14) into # from syscolumns,sysobjects
select 时间=cast(iniDate+'+@Seed+' as datetime),间隔=iniDate/14 from #
')/*
时间 间隔
------------------------------------------------------ -----------
2007-07-01 00:00:00.000 0
2007-07-15 00:00:00.000 1
2007-07-29 00:00:00.000 2
2007-08-12 00:00:00.000 3
2007-08-26 00:00:00.000 4
*/
挺巧妙的
select @bdate='2007-7-1',@edate='2007-8-31' --分别录入日期的开始与结束
declare @t table ([date] datetime,no int)
select @i=0
while @bdate<@edate
begin
insert into @t values(@bdate,@i)
select @bdate=dateadd(day,14,@bdate),@i=@i+1
end
select * from @t