某字段里的值:
 '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';
求上述六个日期中与给出的这日期最接近的日期;
还是必须得转换成分钟然后逐一判断呢???

解决方案 »

  1.   

    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'))
      

  2.   

    select top 1 字段 from 表 order by abs(DATEDIFF(second,'2002-02-25 11:30:00',字段))
      

  3.   

    晕,错了,应该是
    SELECT top 1 * 
    FROM @T
    ORDER BY  ABS(DATEDIFF(SS,DATES,'2002-02-25 11:30:00'))