现在有 一个 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...
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...
所以只需要TableName where to_char(A +B,'YYYY-MM-DD')='2011-04-08'interval语法要求必须要一个int值,而非char型,单引号只是一个定界符而已。
TO_CHAR(TRUNC(A)+B,'YYYY-MM-DD')='2011-04-88'
TO_CHAR(A + B,'YYYY-MM-DD')='2011-04-08'
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
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
where trunc(A)-2=to_date('2011-04-08','YYYY-MM-DD')