DECLARE @HHTime INT DECLARE @AVGTime INT DECLARE @i INT DECLARE @tb_Time TABLE ( AVGdate DATETIME ) SELECT @HHTime=DATEDIFF(hh,'2010-05-11','2010-05-12') SET @AVGTime=@HHTime/8 SET @i=1 WHILE(@i<9) BEGININSERT INTO @tb_Time SELECT DATEADD(hh,@AVGTime*@i,'2010-05-11')SET @i=@i+1 CONTINUE endSELECT * FROM @tb_Time
你可以试试这个红色部分你可以自己修改,包括时间和你想分几份,中心思想是,时间是可以转换为float,然后就可以计算了。懂得这个你自己写也没问题了Declare @FromDate datetime Declare @ToDate datetime Declare @Table table([FromDate] datetime, [ToDate] datetime)set @FromDate = '2010-10-10' set @ToDate = '2010-10-18'Declare @SplitTo int Declare @SplitedDate Float(2) Declare @Count int set @Count = 1Set @SplitTo = 8 set @SplitedDate = (CAST((@ToDate-@FromDate) as float(2)) /@SplitTo) while(@Count<=@SplitTo) Begin insert @Table select @FromDate+((@Count-1)*@SplitedDate),@FromDate+(@Count*@SplitedDate)
http://topic.csdn.net/t/20020112/19/473981.html
DECLARE @HHTime INT
DECLARE @AVGTime INT
DECLARE @i INT
DECLARE @tb_Time TABLE
(
AVGdate DATETIME
)
SELECT @HHTime=DATEDIFF(hh,'2010-05-11','2010-05-12')
SET @AVGTime=@HHTime/8
SET @i=1
WHILE(@i<9)
BEGININSERT INTO @tb_Time
SELECT DATEADD(hh,@AVGTime*@i,'2010-05-11')SET @i=@i+1
CONTINUE
endSELECT * FROM @tb_Time
Declare @ToDate datetime
Declare @Table table([FromDate] datetime, [ToDate] datetime)set @FromDate = '2010-10-10'
set @ToDate = '2010-10-18'Declare @SplitTo int
Declare @SplitedDate Float(2)
Declare @Count int
set @Count = 1Set @SplitTo = 8
set @SplitedDate = (CAST((@ToDate-@FromDate) as float(2)) /@SplitTo)
while(@Count<=@SplitTo)
Begin
insert @Table
select @FromDate+((@Count-1)*@SplitedDate),@FromDate+(@Count*@SplitedDate)
set @Count=@Count+1
Endselect * from @Table