-- 按秒
SELECT top 1 * FROM 表 ORDER BY ABS(DATEDIFF(second, '2003-10-01', 时间字段))
-- 按分
SELECT top 1 * FROM 表 ORDER BY ABS(DATEDIFF(minute, '2003-10-01', 时间字段))
-- 按时
SELECT top 1 * FROM 表 ORDER BY ABS(DATEDIFF(hour, '2003-10-01', 时间字段))
-- 按日
SELECT top 1 * FROM 表 ORDER BY ABS(DATEDIFF(day, '2003-10-01', 时间字段))
declare @n table (i smalldatetime)
insert into @n values('20020101')
insert into @n values('20030101')
insert into @n values('20040101')
insert into @n values('20030901')
select * from @n
where i=(select top 1 * from @n where datediff(day,i,'20031001')>=0 order by i desc)