多行记录,如何返回时间最靠前的。

gong_max 2011-12-20 02:51:25
一张表T1,字段如下
(
id decimal(18,0),
name varchar(10),
recordTime datetime
)
表中有多条记录,除了最后一个时间字段,其他的都相同如下
1 'zhangsan' 2011-01-01
1 'zhangsan' 2010-09-14

我如何只取时间最靠近当前的一条记录??
...全文
121 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gong_max 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengxuan 的回复:]

SQL code

select * from T1 a where not exists(select 1 from T1 where name=a.name and recordTime>a.recordTime)
[/Quote]
可以,感谢。
勿勿 2011-12-20
  • 打赏
  • 举报
回复
select * from T1 a where not exists(select 1 from T1 where name=a.name and recordTime>a.recordTime)
Felixzhaowenzhong 2011-12-20
  • 打赏
  • 举报
回复
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)---秒


Felixzhaowenzhong 2011-12-20
  • 打赏
  • 举报
回复
和 当前日期做 差,取差值最小的
jmx123456789 2011-12-20
  • 打赏
  • 举报
回复

select top 1 * from t1 order by recordTime desc
-晴天 2011-12-20
  • 打赏
  • 举报
回复
select * from t1 a where not exists(select 1 from t1 where abs(datediff(mi,recordtime,getdate()))<abs(datediff(mi,a.recordtime,getdate()))
水族杰纶 2011-12-20
  • 打赏
  • 举报
回复
row_number()over(partition by order by )
pengxuan 2011-12-20
  • 打赏
  • 举报
回复

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

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧