programing

PL/SQL 날짜에서 X 일 전에 X를 가져오는 방법은?

topblog 2023. 9. 10. 11:54
반응형

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

반응형