在数据库中,我查出一段时间,,然后把这段时间平分成几段。     意思就是说   我查   2009-1-1   至  2009-1-2 一天的时间 我把这段时间平分成 8份   如果要查 2009-1-1 至 2009-1-3  两天的时间 我也是平分成 8 份。。这样的 SQL 怎么写呀??        着急等。  谢谢大家帮忙

解决方案 »

  1.   

     这个得用一个表或临时表来存每个时间段的值,参考:
    http://topic.csdn.net/t/20020112/19/473981.html
      

  2.   


    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
      

  3.   

    你可以试试这个红色部分你可以自己修改,包括时间和你想分几份,中心思想是,时间是可以转换为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)

    set @Count=@Count+1
    Endselect * from @Table