结果集当中,取得“第一条数据”...
比如现在有一结果集*********200808*********200807*********200809*********200810*********200805现...
比如现在有一结果集
*** *** *** 200808
*** *** *** 200807
*** *** *** 200809
*** *** *** 200810
*** *** *** 200805
现在想实现的事,我如何能取得离sysdate最近的一条数据?
麻烦大家了~ 展开
*** *** *** 200808
*** *** *** 200807
*** *** *** 200809
*** *** *** 200810
*** *** *** 200805
现在想实现的事,我如何能取得离sysdate最近的一条数据?
麻烦大家了~ 展开
4个回答
展开全部
SELECT top 1 * FROM TABLE
order by DATEDIFF(mm, convert(datetime,aa+'01',120),sysdate)
--这里取你结果集中的日期与sysdate之间月份的差最小的就可以了。
order by DATEDIFF(mm, convert(datetime,aa+'01',120),sysdate)
--这里取你结果集中的日期与sysdate之间月份的差最小的就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取第一条记录,
select top 1 * from 表名
取得离sysdate最近的一条数据?
你的意思是离当前时间最近的?
select top 1 * from 表名 order by sysdate desc
这是取按 sysdate 时间 从大到小的 第一条记录,也就是离现在最近的数据
select top 1 * from 表名
取得离sysdate最近的一条数据?
你的意思是离当前时间最近的?
select top 1 * from 表名 order by sysdate desc
这是取按 sysdate 时间 从大到小的 第一条记录,也就是离现在最近的数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
---一下在SQL2005测试通过,给楼主参考参考。不过sqlserver用的时候getdate()来表示获取今天日期。
---日期最接近今天的数据
create table #t (a varchar,d datetime)
insert #t
select 'a','2008-11-1' union all
select 'a','2008-11-28' union all
select 'b','2008-1-1'
select a,d
from #t
group by a,d
having min(abs(datediff(day,getdate(),d)))<= all
(select
min(abs(datediff(day,getdate(),d)))
from #t
)
drop table #t
---日期最接近今天的数据
create table #t (a varchar,d datetime)
insert #t
select 'a','2008-11-1' union all
select 'a','2008-11-28' union all
select 'b','2008-1-1'
select a,d
from #t
group by a,d
having min(abs(datediff(day,getdate(),d)))<= all
(select
min(abs(datediff(day,getdate(),d)))
from #t
)
drop table #t
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select top 1 * from AA order by sysdate desc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |