求一个查询语句
某字段里的值:
'2002-02-25 11:05:11 '
'2002-02-25 11:26:11 '
'2002-02-25 11:56:11 '
'2002-02-25 12:11:11 '
'2002-02-25 17:11:11 '
'2002-02-25 16:55:11 '
给出一日期:如: '2002-02-25 11:30:00 ';
求上述六个日期中与给出的这日期最接近的日期;
还是必须得转换成分钟然后逐一判断呢???
[解决办法]
DECLARE @T TABLE(ID INT IDENTITY(1,1),DATES DATETIME)
INSERT @T SELECT '2002-02-25 11:05:11 '
UNION ALL SELECT '2002-02-25 11:26:11 '
UNION ALL SELECT '2002-02-25 11:56:11 '
UNION ALL SELECT '2002-02-25 12:11:11 '
UNION ALL SELECT '2002-02-25 17:11:11 '
UNION ALL SELECT '2002-02-25 16:55:11 '
SELECT top 1 *
FROM @T
ORDER BY ABS(DATEDIFF(MM,DATES, '2002-02-25 11:30:00 '))
[解决办法]
select top 1 字段 from 表 order by abs(DATEDIFF(second, '2002-02-25 11:30:00 ',字段))