看了看这样好像可以的select * from mtime  
where 1=
 case  when starttime<endtime  then (case when convert(varchar(5),getdate(),8) between starttime and endtime then 1 else 0 end) 
 
 else (case when convert(varchar(5),getdate(),8) >= starttime or convert(varchar(5),getdate(),8)<=endtime then 1 else 0 end)  end

解决方案 »

  1.   

    select * from mtime 
     where 1=
     case  when starttime<endtime  then (case when convert(varchar(5),getdate(),8) between starttime and endtime then 1 else 0 end) 
     
     else (case when convert(varchar(5),getdate(),8) >= starttime or convert(varchar(5),getdate(),8)<=endtime then 1 else 0 end)  end
      

  2.   

    SELECT *
    FROM mtime
    WHERE (1 = CASE WHEN starttime < endtime THEN (CASE WHEN CONVERT(varchar(5), 
          getdate(), 8) BETWEEN starttime AND endtime THEN 1 ELSE 0 END) 
          ELSE (CASE WHEN CONVERT(varchar(5), getdate(), 8) >= starttime OR
          CONVERT(varchar(5), getdate(), 8) <= endtime THEN 1 ELSE 0 END) END)
      

  3.   

    SELECT *
    FROM mtime
    WHERE (1 = CASE WHEN starttime < endtime THEN (CASE WHEN CONVERT(varchar(5), 
          getdate(), 8) BETWEEN starttime AND endtime THEN 1 ELSE 0 END) 
          ELSE (CASE WHEN CONVERT(varchar(5), getdate(), 8) >= starttime OR
          CONVERT(varchar(5), getdate(), 8) <= endtime THEN 1 ELSE 0 END) END)
      

  4.   

    我认为,需要修改表结构。不要只存储时间,应该加上日期,如:
    Start: 2008/11/19 22:35End: 2008/11/20 7:20
    这样就很好处理了。我只是举个例子,具体看情况,很多问题都可以通过表单设计来解决。