本帖最后由 wynlc 于 2013-03-25 13:14:33 编辑

解决方案 »

  1.   

    upset 表2 from 表1 where 表2.时间=表1.时间 and isnull(表2.数据,'')=''
      

  2.   

    DECLARE @a TABLE(a VARCHAR(5),b FLOAT)
    INSERT @a SELECT '10:34',28.5
    UNION ALL SELECT '10:35',20.5
    UNION ALL SELECT '10:36',20.5
    UNION ALL SELECT '10:37',20.5
    UNION ALL SELECT '10:38',20.5
    UNION ALL SELECT '10:39',20.5
    UNION ALL SELECT '10:40',20.5
    UNION ALL SELECT '10:42',21.5
    UNION ALL SELECT '10:43',20.5
    UNION ALL SELECT '10:44',20.5
    UNION ALL SELECT '10:50',29.5
    UNION ALL SELECT '10:51',51.5
    UNION ALL SELECT '10:52',20.5
    UNION ALL SELECT '10:53',20
    UNION ALL SELECT '10:54',20
    UNION ALL SELECT '10:55',20.5
    UNION ALL SELECT '10:56',28.5
    UNION ALL SELECT '10:57',9.5SELECT convert(char(5),aa.a,108)a, COALESCE(bb.b,(SELECT TOP 1 b FROM @a WHERE a>aa.a ORDER BY a ),(SELECT TOP 1 b FROM @a WHERE aa.a>a ORDER BY a desc)) value
    FROM 
    ( SELECT distinct DATEADD (mi,sv.number,'10:27') a
    FROM MASTER.dbo.spt_values sv WHERE sv.number BETWEEN 1 AND 31
    )aa LEFT JOIN @a bb 
    ON aa.a=bb.a 
    --result
    /*a     value                                                 
    ----- ----------------------------------------------------- 
    10:28 28.5
    10:29 28.5
    10:30 28.5
    10:31 28.5
    10:32 28.5
    10:33 28.5
    10:34 28.5
    10:35 20.5
    10:36 20.5
    10:37 20.5
    10:38 20.5
    10:39 20.5
    10:40 20.5
    10:41 21.5
    10:42 21.5
    10:43 20.5
    10:44 20.5
    10:45 29.5
    10:46 29.5
    10:47 29.5
    10:48 29.5
    10:49 29.5
    10:50 29.5
    10:51 51.5
    10:52 20.5
    10:53 20.0
    10:54 20.0
    10:55 20.5
    10:56 28.5
    10:57 9.5
    10:58 9.5(所影响的行数为 31 行)*/
      

  3.   


    非常感谢declare @in_par3 DATETIME
    set @in_par3 ='2013/03/21 23:58'
    declare @i int
    set @i=0 
    while @i<61
    begin
    set @i=@i+1
    set @in_par3=DATEADD(n, -1, @in_par3) 
    print left(CONVERT(varchar(100), @in_par3, 24),5)
    end