web-dev-qa-db-ja.com

OracleFunctionで前月の最終日を取得する

このようなOracleの関数が必要です。

パラメータに簡単な日付を指定する場合。そうすれば、関数は前月の最終日に私を取得するはずです。

例:

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)

どうやってやるの?ちなみに、私はOracleを決して使用しません。

7
Soner Gönül
SELECT LAST_DAY(ADD_MONTHS(yourdate,-1))
29
Lamak

ここでの他の回答の代わりに、今月の初日の前日を取得することで、前月の最終日を見つけることもできます。

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

おそらくまだlast_day(add_months(xxx,-1))を使用することをお勧めしますが、代わりの方法を示すだけです。

8
Mike Meyers

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

結果の日付を好きなようにフォーマットします(それはあなたに任せます;)

4
tbone

これにより、前月の最後の営業日、または-1を変更する他の月を取得することもできます。

SELECT (trunc(LAST_DAY(ADD_MONTHS(sysdate,-1)), 'iw') + 4) from dual
0
LEBRO