情况是这样,
现在我有两个字段,一个是news_starttimr和news_closetime 存放新闻显示的开始时间和结束时间
我只会见简单点的SQL语句
我这样写显示不出数据
 select top 9 news_title,news_starttime,news_closetime from  eaat_news 
 where class_id1 in(select class_id from eaat_class where parentid=6) and  News_State=1 
 and getdate() in(select datediff(day,news_starttime,news_closetime))
 order by news_istop desc,news_tj desc,news_addtime desc我想要的结果是,服务器的当前时间 如果在这两个字段之间,就显示新闻标题,不在就不显示。
感谢牛人们帮帮忙 ,谢谢

解决方案 »

  1.   

    where getdate() between news_starttimr and news_closetime 即可.
      

  2.   

    select * from  eaat_news 
    where getdate() between news_starttimr and news_closetime
      

  3.   

    select top 9 news_title,news_starttime,news_closetime from  eaat_news 
    where class_id1 in(select class_id from eaat_class where parentid=6) and  News_State=1 
    and getdate() news_starttime and news_closetime
      

  4.   

    select * from tablename where getdate() between news_starttimr And news_closetime 
      

  5.   

    少了点东西,下面补上.select top 9 news_title,news_starttime,news_closetime from  eaat_news 
    where class_id1 in(select class_id from eaat_class where parentid=6) and  News_State=1 
    and getdate() between news_starttime and news_closetime
      

  6.   

    where getdate() between news_starttimr and news_closetime 
      

  7.   

    给点数据??
    用case when  来做
      

  8.   

    select
     top 9 news_title,news_starttime,news_closetime 
    from  
     eaat_news 
    where 
     class_id1
    in
     (select class_id from eaat_class where parentid=6) and  News_State=1 
    and
     getdate() between news_starttime and news_closetime
      

  9.   

    select top 9 news_title,news_starttime,news_closetime from  eaat_news 
    where class_id1 in(select class_id from eaat_class where parentid=6) and  News_State=1 
    and getdate() between news_starttime and news_closetime
    order by news_istop desc,news_tj desc,news_addtime desc 
      

  10.   

    news_starttime          news_closetime
    2009-12-12 00:00:00 2009-12-31 00:00:00
    2009-12-12 00:00:00 2009-12-31 00:00:00
    2009-12-12 00:00:00 2009-12-31 00:00:00
    2009-12-12 00:00:00 2009-12-31 00:00:00
    2009-12-12 00:00:00 2009-12-31 00:00:00
    2009-12-12 00:00:00 2009-12-31 00:00:00
    2009-12-12 00:00:00 2009-12-31 00:00:00
    2009-12-12 00:00:00 2009-12-31 00:00:00
    2009-12-12 00:00:00 2009-12-31 00:00:00
    这是我不带那个条件查出来的时间段
      

  11.   

    哦,对了,我想起了,在存储过程和函数中,getdate无效.你可以先用一个变量获取到getdate,然后再把这个变量做为参数传进你的存储过程.
    例如:
    declare @dt as datetime
    set @dt = getdate()--
    在存储过程中这样写,其他@dt为传进去的值.
    select top 9 news_title,news_starttime,news_closetime from  eaat_news 
    where class_id1 in(select class_id from eaat_class where parentid=6) and  News_State=1 
    and @dt between news_starttime and news_closetime
    order by news_istop desc,news_tj desc,news_addtime desc 
      

  12.   

    dawugui
    谢谢了 between and就可以解决了.
    是同事把测试服务器的时间改的缘故,我说怎么查不出来数据,还在改本地时间,自己晕乎了。
      

  13.   

    是我记错了,getdate()在函数中无效.