table1表中记录如下:
A B C D
001 1.0 2009/01/03 aaaa
001 0.9 2008/09/03 aaaa
001 1.1 2008/08/03 aaaa
002 1.2 2009/01/03 aaaa
002 0.8 2009/01/03 aaaa
比如我选择的日期是“2008/09/09”,我在table1表中想查找 C列 中与这个日期最近的那一条记录,怎么写这条SQL语句呢?
--如果只存在一条记录。
select top 1 * from tb order by abs(datediff(day,c,'2008/09/09'))
--如果存在多条记录
select * from tb where abs(datediff(day,c,'2008/09/09')) = (select top 1 * from tb order by abs(datediff(day,c,'2008/09/09')))
http://topic.csdn.net/u/20091210/17/1f771488-74eb-4e71-9649-ad38629c0031.html