PL/SQL Как получить X дней назад из даты в качестве даты?
Я хочу получить 100 дней назад с 08-APR-13 в качестве даты.
Как это сделать с помощью pl/sql?
Ответ 1
Предполагалось, что 08-APR-13 является строкой в вашей ситуации. Поэтому вам нужно преобразовать его в date с помощью функции to_date, а затем просто вычесть 100 литералов.
SQL
SQL> select (to_date('08-APR-13', 'DD-MON-RR') - 100) res
2 from dual
3 /
RES
-----------
29-12-2012
это можно сделать, выбрав запрос просто минусом, как сказал Николас Краснов..
IN pl/sql, создав функцию DATE_AGO, входной параметр которой - дата и количество дней, которые вы должны вычесть...
create or replace function DATE_AGO(DATE1 date, NUMBER_DAYS number) return date
is
V_DATE1 date:=DATE1;
v_NUMBER_DAYS number:=NUMBER_DAYS;
begin
V_DATE1:=V_DATE1-v_NUMBER_DAYS;
return V_DATE1;
when OTHERS then
DBMS_OUTPUT.PUT_LINE(SQLCODE);
end DATE_AGO;
/
SHOW ERRORS;
select DATE_AGO('08-APR-13',100) from DUAL;