oracle中varchar2类型与integer类型的变量进行运算

varchar2 类型的 '2012-05'
integer 类型的 1
如何进行 '2012-05'-1这样的运算?

varchar2能参与integer的计算必须使varchar2保存的是数字型的字符,然后通过to_number函数转换进行计算。

1、创建表,录入数据:

create table t
(id int,
sal varchar2(10));

insert into t values (1,'10');
insert into t values (2,'20');
commit;

2、执行加法运算:

select id,to_number(sal)+10 from t;

3、查询结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-10
不知道你是不是要在 2012-05 的基出上向前移动 1 个月份,如果是的话可以这样写: select to_char(add_months(to_date('2012-05','yyyy-mm'),-1),'yyyy-mm') from dual 就可以得到'2012-04'本回答被提问者和网友采纳
第2个回答  2012-09-19
declare a varchar2(20);b number;
begin
a:='2012-05';
b:=1;
dbms_output.put_line(to_char(to_date(a||'-'||b,'yyyy-mm-dd'),'yyyy-mm-dd'));
end;
相似回答