比如 sql:SELECT id,userid, logtitle, logtext, createtime, updatetime 
FROM xx.loginfo 
WHERE (
DATEDIFF(dayofyear, createtime, '2008-08-25 00:00:00') = 0) 

查询出来的结果:
311 10000 title test 2008-08-25 09:46:27.000 NULL
312 10000 title2 test2 2008-08-25 09:46:58.000 NULL
我想只查询第二条结果来。。用上面的 sql语句怎么可以实现出来啊

解决方案 »

  1.   

    SELECT top 1 id,userid, logtitle, logtext, createtime, updatetime
    FROM xx.loginfo
    WHERE (
    DATEDIFF(dayofyear, createtime, '2008-08-25 00:00:00') = 0)  order by updatetime desc
      

  2.   

    SELECT top 1 id,userid, logtitle, logtext, createtime, updatetime
    FROM xx.loginfo
    WHERE (
    DATEDIFF(dayofyear, createtime, '2008-08-25 00:00:00') = 0)  order by createtime desc不好意思 看错字段了
      

  3.   

    用convert把你的时间字段格式化成字符,截取其中的需要比较的字符串,把截取的结果进行比较
      

  4.   

    其实你的ID 如果是自增的话,那么按照这个思路,,ID号最大的就是你最晚的时间的..或者也可以这样.
    SELECT top 1 id,userid, logtitle, logtext, createtime, updatetime 
    FROM xx.loginfo 
    WHERE ( 
    DATEDIFF(dayofyear, createtime, '2008-08-25 00:00:00') = 0) 
    order by createtime desc
      

  5.   

    那还不如在max(createtime)  .....
      

  6.   

    SELECT top 1 id,userid, logtitle, logtext, createtime, updatetime
    FROM xx.loginfo
    WHERE (
    DATEDIFF(dayofyear, createtime, '2008-08-25 00:00:00') = 0)  order by createtime desc
      

  7.   

    还有条思路就是你可以在你这个select语句作为子查询,就是把你的这条结果当作一个表。查询时间最大的或者最晚的一条记录就OK了。