2016-06-09 13 views
-1

Ich versuche, das Datum 01/12/(aktuelles Jahr - 1) Mit anderen Worten, wenn es 2016 ist, möchte ich die Variable 01/12/15 sein, wenn es 2017 ist zu sein 01/12/16 .. und so weiter Verwenden von PLSQL. Gibt es eine Möglichkeit, dies zu tun? Und wenn ja, vielen Dank für Ihre Hilfe: D!Aktualisieren Sie ein Datum in PLSQL jedes Jahr

Antwort

1

Dies kann durch eine SQL-Abfrage select add_months(sysdate, -12) from dual;

oder wenn Ihr von Jahr zu Jahr erreicht werden, dies durch Funktion erreicht werden kann.

create or replace 
function Yr (P_Year Date) 

Return Date 
As 
Out_Year Date; 
begin 
Select Add_Months(P_Year, -12) Into Out_Year From Dual; 
return out_year; 
end; 

select yr(sysdate) from dual; 
output :-09-JUN-15 
0

können Sie versuchen, den folgenden Ausschnitt unten erwähnt

SELECT ADD_MONTHS (SYSDATE, -12) 
    FROM dual; 
1
trunc(sysdate, 'YYYY') 

Sie 1. Januar des laufenden Jahres geben.

add_months(trunc(sysdate, 'YYYY'), -12) 

werden Sie Januar geben 1 des Vorjahres

add_months(trunc(sysdate, 'YYYY'), -12) + 11 

Sie 12. Januar des vergangenen Jahres diese Hoffnung

+0

Das hat funktioniert! Danke vielmals! –

1

Versuchen Sie, das hilft geben.

SELECT ADD_MONTHS(TRUNC(SYSDATE,'YEAR'),-1) FROM DUAL; 


------------------------------OUTPUT-------------------------------------------- 

ADD_MONTHS(TRUNC(SYSDATE,'YEAR'),-1) 
12/01/2015 

------------------------------OUTPUT--------------------------------------------