Oracle
 sql >> Baza danych >  >> RDS >> Oracle

PL/SQL Jak uzyskać X dni temu z Daty jako Daty?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaszyfruj hasło w R - aby połączyć się z bazą danych Oracle za pomocą RODBC

  2. Dynamiczne przestawianie Oracle

  3. Uzyskaj ostatni identyfikator wstawiania za pomocą Oracle 11g za pomocą JDBC

  4. Połącz ponownie infrastrukturę sieciową

  5. Nie można skompilować PL/SQL za pomocą BULK COLLECT i FORALL