select * from tbname 
where tag=1 or (tag=0 and time > trunc(sysdate)-15);

解决方案 »

  1.   

    select * from tbname 
    where tag=1 or (tag=0 and trunc(sysdate)-trunc(time)<15);
      

  2.   

    我去试了试,好象都不对呀!bzszp你给我的,还是全部信息都出来的。freddy的,我试了后,是报错的,ORA-00932: 数据类型不一致。对了,我的time字段那时取的时候,是 select to_char(sysdate,'yyyy /m m /d d') from dual取的,不知道会不会有影响 
      

  3.   

    我光打 select * from tb_tpxw where time > trunc(sysdate)-15;
    都是报错的。ORA-01861: 文字与格式字符串不匹配
      

  4.   

    如果你的time字段是字符型的就有问题了
    select  *  from  tbname    
    where  tag=1  or  (tag=0  and  to_date(time,'yyyy/mm/dd')>trunc(sysdate)-15);
      

  5.   

    select * from tbname 
    where tag=1 or (tag=0 and to_date(time,'yyyymmdd')> trunc(sysdate)-15)
    order by tag
      

  6.   

    freddy2003和bzszp的方法是可行的吗!
      不过应该是:select * from tbname 
    where tag=1 or (tag=0 and Trunc(Sysdate, 'dd') -Trunc(to_date(time,'yyyy-mm-dd'), 'dd') <= 15 );
      

  7.   

    郁闷啊!select * from tb_tpxw 
    where Trunc(Sysdate, 'dd') -Trunc(to_date(time,'yyyy-mm-dd'), 'dd') <= 15; 是出来的两条信息,两条信息的tag都是等于0的,但我select * from tb_tpxw 
    where tag=0 and Trunc(Sysdate, 'dd') -Trunc(to_date(time,'yyyy-mm-dd'), 'dd') <= 15;的话,一条信息都没有了。 
    如果写成select * from tb_tpxw 
    where tag=1 or(tag=0 and Trunc(Sysdate, 'dd') -Trunc(to_date(time,'yyyy-mm-dd'), 'dd') <= 15);的话,所有的信息又都出来了!