一张表T1,字段如下
(
id decimal(18,0),
name varchar(10),
recordTime datetime
)
表中有多条记录,除了最后一个时间字段,其他的都相同如下
1   'zhangsan'   2011-01-01
1   'zhangsan'       2010-09-14我如何只取时间最靠近当前的一条记录??

解决方案 »

  1.   


    select * from T1 a where not exists(select 1 from T1 where name=a.name and recordTime>a.recordTime)
      

  2.   

    row_number()over(partition by order by )
      

  3.   

    select * from t1 a where not exists(select 1 from t1 where abs(datediff(mi,recordtime,getdate()))<abs(datediff(mi,a.recordtime,getdate()))
      

  4.   


    select top 1 * from t1 order by recordTime desc
      

  5.   

    select DATEDIFF(ms,GETDATE(),getdate()+1)---毫秒
    select DATEDIFF(day,GETDATE(),getdate()+1)---天
    select DATEDIFF(HOUR,GETDATE(),getdate()+1)---小时
    select DATEDIFF(Minute,GETDATE(),getdate()+1)---分钟
    select DATEDIFF(Second,GETDATE(),getdate()+1)---秒
      

  6.   

    select * from T1 a where not exists(select 1 from T1 where name=a.name and recordTime>a.recordTime)