Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Разбить диапазон дат  [new]
veli
Member

Откуда:
Сообщений: 152
Уважаемые ораклойды, есть такая вот задача, как из диапозона дат получить разбивку по месяцам, например.

Имеем 2 даты , например, sysdate и sysdate-100,
необходимо получить:

Сентябрь 2007
Август 2007
Июль 2007
Июнь 2007
10 сен 07, 17:35    [4645194]     Ответить | Цитировать Сообщить модератору
 Re: Разбить диапазон дат  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116325
Что то типа

SQL> with tab1 as
  2  (select sysdate dat1, sysdate - 100 dat2 from dual)
  3  select to_char(ADD_MONTHS(dat1, -level+1),'fmMonth YYYY') Month_Year
  4  from tab1
  5  connect by level <= trunc(MONTHS_BETWEEN(dat1,dat2)) + 1
  6  /
 
MONTH_YEAR
--------------
September 2007
August 2007
Juli 2007
Juni 2007
 
SQL> 
10 сен 07, 17:39    [4645218]     Ответить | Цитировать Сообщить модератору
 Re: Разбить диапазон дат  [new]
veli
Member

Откуда:
Сообщений: 152
спс большое
10 сен 07, 17:43    [4645249]     Ответить | Цитировать Сообщить модератору
 Re: Разбить диапазон дат  [new]
Proteus
Member

Откуда:
Сообщений: 1348
with s as (select sysdate e, sysdate - 100 b from dual)
SELECT to_char(add_months(b, LEVEL - 1), 'month rrrr')
  FROM s
CONNECT BY add_months(b, LEVEL - 1) < e
order by add_months(b, LEVEL - 1) desc

не успел :)
10 сен 07, 17:44    [4645252]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить