반응형
PL/SQL 날짜에서 X 일 전에 X를 가져오는 방법은?
100일 전 APR-13 날짜로 받고 싶습니다.
pl/sql로 하는 방법은?
다음과 같은 가정이 이루어졌습니다.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
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
오어
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
이것은 니콜라스 크라스노프가 말한 것처럼 단지 마이너스로 선택 질의를 할 수 있습니다.입력 파라미터가 date와 뺄셈이 필요한 일수인 함수 DATE_AGO를 만들어 INpl/sql...
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;
언급URL : https://stackoverflow.com/questions/13508995/pl-sql-how-to-get-x-day-ago-from-a-date-as-date
반응형
'programing' 카테고리의 다른 글
엔티티 관리자를 주입하는 중입니다.엔티티 매니저 팩토리 (0) | 2023.09.15 |
---|---|
jQuery의 테이블 행 및 열 번호 (0) | 2023.09.15 |
INSERT GRANGE가 auto_increment primary key를 증가시키는 이유는 무엇입니까? (0) | 2023.09.10 |
열 인덱스를 Excel 열 이름으로 변환 (0) | 2023.09.10 |
Ajax 오류 후 RxJS 계속 듣기 (0) | 2023.09.10 |