现在有 一个 TableName表的的两个字段:
 A  Date,
 B  int求Oracle查询条件的中Date型加int型的写法:
 在  TableName where to_char(A +interval '2' day),'YYYY-MM-DD')='2011-04-08' 这样可以查询但换成
     TableName where to_char(A +interval to_char(B) day),'YYYY-MM-DD')='2011-04-08'
就会有问题,请高手相助!
     我想达到类似 '2011-04-06'后的2天就即'2011-04-08' ,其中 B字段里面存的变化的值,如1或2或3...

解决方案 »

  1.   

    Date型加int就表示,在Date上加上多少天。如Date值+2就表示该日期加上2天
    所以只需要TableName where to_char(A +B,'YYYY-MM-DD')='2011-04-08'interval语法要求必须要一个int值,而非char型,单引号只是一个定界符而已。
      

  2.   

    TableName where 
    TO_CHAR(TRUNC(A)+B,'YYYY-MM-DD')='2011-04-88'
      

  3.   

    TableName where 
    TO_CHAR(A + B,'YYYY-MM-DD')='2011-04-08'
      

  4.   


    SQL> select dt,dt+2 from
      2  (select to_date('2011-04-06','yyyy-mm-dd') dt
      3          from dual)
      4  /DT          DT+2
    ----------- -----------
    2011-4-6    2011-4-8
      

  5.   


    SQL> select dt,
      2         (case when dt+2=to_date('2011-04-08','yyyy-mm-dd') then '增加2天后为:2011-04-08' else null end) dt_2
      3  from
      4  (select to_date('2011-04-06','yyyy-mm-dd') dt
      5          from dual)
      6  /DT          DT_2
    ----------- ----------------------
    2011-4-6    增加2天后为:2011-04-08
      

  6.   

    干什么搞的这么复杂啊
     where trunc(A)-2=to_date('2011-04-08','YYYY-MM-DD')