首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

多行记录,怎么返回时间最靠前的

2012-03-17 
多行记录,如何返回时间最靠前的。一张表T1,字段如下(id decimal(18,0),name varchar(10),recordTime dateti

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

我如何只取时间最靠近当前的一条记录??

[解决办法]

SQL code
select * from T1 a where not exists(select 1 from T1 where name=a.name and recordTime>a.recordTime)
[解决办法]
row_number()over(partition by order by )
[解决办法]
SQL code
select * from t1 a where not exists(select 1 from t1 where abs(datediff(mi,recordtime,getdate()))<abs(datediff(mi,a.recordtime,getdate()))
[解决办法]
SQL code
select top 1 * from t1 order by recordTime desc
[解决办法]
和 当前日期做 差,取差值最小的
[解决办法]
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)---秒


热点排行