пятница, 6 марта 2009 г.

Oracle: первый и последний день месяца

Намедни столкнулся с проблемой узнать первый и последний день месяца определенной даты.
Для того чтобы узнать последний день месяца есть встроенная в Oracle функция LAST_DAY().
Интереснее узнать первый день месяца.
Понравилось следующее решение:

add_months(last_day(to_date(:p_date_from,'dd-mm-yyyy'))+1,-1)

по сути мы к заданной дате применяем функцию LAST_DAY(), прибавляем один день и автоматически перешли на следующий месяц. Далее с помощью ADD_MONTHS() отнимаем один месяц от получившейся даты.

Ссылки по теме:
Статья о работе с датой
Форум Oracle

Ярлыки: , , ,

Комментарии: 2:

В 6 марта 2009 г. в 15:25 , Blogger Unknown сказал(а)...

Извращение!
Первый день месяца получается гораздо проще:
trunc(to_date(:p_date_from,'dd-mm-yyyy'),'month')

 
В 1 апреля 2009 г. в 11:53 , Blogger cybd сказал(а)...

Спасибо за дельный комментарий.

 

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница