вторник, 27 января 2015 г.

Начало и конец месяца в oracle sql

Запрос для поиска начала и окончания текущего периода

 
  select   sysdate
        ,trunc(sysdate,'MM') per_beg
        ,trunc (last_day (sysdate)) + 1 - 1/24/59/59 per_end
  from   dual


Объясню что обозначают цифры которые прибавляются к дате. Это зделано для того, чтобы получить время - 23:59:59.Как известно, в oracle прибавляемое к дате число считается за количество дней. Мы прибавляем к дате один день и вычитаем число, равно одной секунде. Для того чтобы вычислить секунду мы 1 день делим на 24 часа, потом делим на 59 минут, и в заключении делим на 59 секунд.

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

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