Получение последнего дня предыдущего месяца в функции Oracle
мне нужна функция в 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
.
4 ответов
в качестве альтернативы другим ответам здесь вы также можете найти последний день предыдущего месяца, получив день до первого дня этого месяца
SELECT trunc(your_date, 'MM')-1 as new_date from your_table
Я бы, вероятно, все равно рекомендовал использовать last_day(add_months(xxx,-1))
но просто показываю альтернативу.
select LAST_DAY(ADD_MONTHS(sysdate, -1)) from dual
;
формат даты в результате, как вам нравится (я оставлю это для вас ;)
С этим вы также можете получить последний рабочий день предыдущего месяца или любой другой месяц, меняющий -1.
SELECT (trunc(LAST_DAY(ADD_MONTHS(sysdate,-1)), 'iw') + 4) from dual