一张表里有时间这一字段,如何通过拼sql去获取离当前最近的那一条记录?

 我来答
wuliangii
2015-03-23 · TA获得超过165个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:118万
展开全部
只要判断表中的时间字段跟当前日期,对比两者的秒数,绝对值最少的就是离当前最近的那条记录了,语句如下:
select top 1 * from 表 order by abs(datediff(ss,时间,getdate()))
追问
可以通过按时间字段排序,然后取第一条能行嘛?
追答
注意‘离当前最近’这个条件,
如果表中有一条记录,日期是一个星期后的,那么按时间进行倒序排列,top 1的就会是那条了,举个例子吧:
假设当前日期是'2015-03-23 9:00:00',表中有两条记录,日期分别是:
1. ’2015-03-23 7:00:00‘
2. '2015-04-01 7:00:00'
如果通过按时间字段排序,取第一条的话,结果就是2

但实际上‘离当前最近’的却是1
这样说,能理解吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式