Założono, że 08-APR-13
jest ciągiem w twojej sytuacji. Musisz więc przekonwertować go na date
używając to_date
funkcji, a następnie po prostu odejmij 100 liter.
-
SQL
SQL> select (to_date('08-APR-13', 'DD-MON-RR') - 100) res 2 from dual 3 / RES ----------- 29-12-2012
-
PL/SQL
SQL> declare 2 l_res_date date; 3 l_in_date varchar2(11) := '08-APR-13'; 4 begin 5 select (to_date(l_in_date, 'DD-MON-RR') - 100) 6 into l_res_date 7 from dual; 8 9 dbms_output.put_line(to_char(l_res_date, 'dd-mon-yy')); 10 end; 11 / 29-dec-12 PL/SQL procedure successfully completed
LUB
SQL> declare
2 l_res_date date;
3 l_in_date varchar2(11) := '08-APR-13';
4 begin
5
6 l_res_date := to_date(l_in_date, 'DD-MON-RR') - 100;
7
8 dbms_output.put_line(to_char(l_res_date, 'dd-mon-yy'));
9 end;
10 /
29-dec-12
PL/SQL procedure successfully completed