一张表里有时间这一字段,如何通过拼sql去获取离当前最近的那一条记录?
展开全部
只要判断表中的时间字段跟当前日期,对比两者的秒数,绝对值最少的就是离当前最近的那条记录了,语句如下:
select top 1 * from 表 order by abs(datediff(ss,时间,getdate()))
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
这样说,能理解吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询