2011-02-10 29 views
6

Oracle'da bunun gibi bir işleve ihtiyacım var.Oracle İşlevinde Önceki Ayın Son Günü Başlıyor

Bir parametre verdiğimde, basit bir tarih. O zaman işlev, önceki ayın son gününü almalı.

Örnek:

FunctionName(10.02.2011) Result should be 31.01.2011 

FunctionName(21.03.2011) Result should be 28.02.2011 

FunctionName(31.07.2011) Result should be 30.06.2011 (Even date is last day of month) 

Bunu nasıl yapabilirim? Bu arada, asla Oracle kullanmayın.

cevap

26
SELECT LAST_DAY(ADD_MONTHS(yourdate,-1)) 
+2

Bu işlevler birkaç on yıl boyunca standart Oracle'ın bir parçası olmuştur. – APC

+1

@APC oh, bilmek güzel :). Ben aslında Oracle için yeni. – Lamak

2

select LAST_DAY(ADD_MONTHS(sysdate, -1)) from dual;

istediğiniz gibi (senin için bir tane bırakacağım;) tarihini çıkan biçimi burada diğer cevaplar alternatif olarak

7

, ayrıca alarak önceki ayın son gününü bulabilirsiniz bu ay

SELECT trunc(your_date, 'MM')-1 as new_date from your_table 

ilk gününden bir gün önce ben muhtemelen hala last_day(add_months(xxx,-1)) kullanarak ama sadece alternatif göstererek öneriyoruz.

İlgili konular