sql >> Database >  >> RDS >> Oracle

PL/SQL Hoe krijg ik X dag geleden van een datum als datum?

Er werd aangenomen dat de 08-APR-13 is een string in jouw situatie. Je moet het dus converteren naar date met behulp van to_date functie, en trek dan gewoon 100 af.

  • 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
    

OF

     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. Fix "ERROR 1222 (21000):de gebruikte SELECT-instructies hebben een ander aantal kolommen" bij gebruik van UNION in MySQL

  2. faalt om niet-engelse tekens in de database in te voegen met behulp van crontab om het programma uit te voeren

  3. openrowset voor excel:kunnen we meerdere rijen overslaan?

  4. PHP CRUD Maak, bewerk, update en verwijder berichten met MySQL-database