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

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

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

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

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

Oracle: to_date()

>Буквально пару дней назад потребовалось использоваться расширенные возможности функции TO_DATE(). В моем случае задача ставилась следующей:
Входным параметром является дата в формате день-месяц-год (dd-mm-yyyy)
Вернуть нужно в формате День недели, число Месяц год (Dy, dd Mon yyyy).
Дело в том, что название дня недели (напр. Sunday) Dy зависит от региональных настроек оракла. Соответственно полагаться на правильные установки не приходится. Вот здесь приходит на помощь доп параметры, так называемые NLS Params.
Для парсинга pubDate в RSS мне понребовался NLS_DATE_LANGUAGE равным ‘american’.

Результат:

1
to_date(:p_date,'Dy, dd Mon yyyy hh24:mi:ss', 'NLS_DATE_LANGUAGE = ''american'' ')

Примечательно, что третий параметр TO_DATE() заключается в кавычки, а если нужно указать кавычки в кавычках, то употребляют две одинарные кавычки.

Ссылки по теме:
Оракловый FAQ по NSL_LANG