Oracle
 sql >> база данни >  >> RDS >> Oracle

PL/SQL Как да получа преди X ден от дата като дата?

Беше направено предположение, че 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намерете цялото дърво от корена, давайки произволен възел

  2. talend etl oracle грешка 0 вмъкване на ред

  3. Времето за изчакване на заявката за ODP.NET връзка изтече

  4. Присъединете се към форума за въпроси и отговори за разработчици

  5. Защо Where 1 <> 1 в заявка би върнало всички редове?