select * from a where day between trunc(sysdate-1)+8/24 and trunc(sysdate-1)+20/24;

解决方案 »

  1.   

    where to_number(to_char(day-1,'HH24'))>=8 and to_number(to_char(day-1,'HH24'))<=20
      

  2.   

    少了一个条件当天的条件,这样写有点烦了,呵呵:
    where to_number(to_char(sysdate-1,'HH24'))>=8 and to_number(to_char(sysdate-1,'HH24'))<=20 and day=sysdate-1
      

  3.   

    上面的语句极为正确,但是对楼主提个建议,用day做字段名不太好吧?
      

  4.   

    阿林同学,分析一下你的sql,能实现帖子的目的吗?
    举例:
    sysdate 2004-10-21 15:33:40
    sysdate-1 2004-10-20 15:33:40
    to_number(to_char(sysdate-1,'HH24'))=15
    所以15>=8,<=20成立,但是如果我是晚上21:00:00运行的话,
    条件就不成立了。
    选择出的数据还和当天的时间有关,这可真有意思了。
    好好想想吧!
      

  5.   

    另外声明:bzszp(SongZip)的语句是正确的。