select top 2 time  from t 
order by abs(datediff(second,time1,time))

解决方案 »

  1.   

    select top 2 time  
    from t 
    where time between t1 and t2
    order by abs(datediff(second,time1,time))
      

  2.   

    select top 2 time  with ties
    from t 
    where time between t1 and t2
    order by abs(datediff(second,time1,time))
      

  3.   

    OK:)
    那这个怎么求:
    如在T1-T2中给出两个时间点time1,time2
    求出分别离time1\time2最近的两条数据
    一条SQL求出
      

  4.   

    --查询参数
    declare @T1 datetime,@T2 datetime
    ,@time1 datetime,@time2 datetime--1.求SQL语句求出T1到T2之间离time最近的那条数据
    select top 1 * from 表
    where 时间列 between @T1 and @T2
    order by abs(datediff(ms,时间列,@time1)--1.给出两个时间点time1,time2 求出分别离time1\time2最近的两条数据
    select * from(
    select top 1 * from 表
    where 时间列 between @T1 and @T2
    order by abs(datediff(ms,时间列,@time1)
    )a 
    union all
    select * from(
    select top 1 * from 表
    where 时间列 between @T1 and @T2
    order by abs(datediff(ms,时间列,@time2)
    )a
      

  5.   

    我倒!别人 lsxaa(小李铅笔刀)写的也是对的,而且还是沙发,凭什么一分都不给?
        势利!BS!!
      

  6.   

    我靠,把题目看清楚再看清楚用了TOP 2,难道对吗我第一问是求最近的一条
    第二问是求分别最近的一条都只能排序再TOP 1解决小李的答案对我的提问来说,是错的啊老大