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

Откуда:
Сообщений: 16
Добрый день! Помогите с решением данного вопроса:
Есть период дат 13.05.2019 - 09.11.2019. Как мне вывести каждый 90-й день ?
10 июн 19, 10:21    [21905722]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28975
evgenyb84
каждый 90-й день ?
А все умеешь? - RTFM MOD
10 июн 19, 10:23    [21905723]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
evgenyb84
Member

Откуда:
Сообщений: 16
Всего не умею, запрос никак не соображу как построить.
10 июн 19, 10:34    [21905737]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28975
ТОП №11
10 июн 19, 10:36    [21905742]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
evgenyb84
Member

Откуда:
Сообщений: 16
не понимаю ваших ответов

Вывел диапазон дат запросом:

SELECT to_date('09.11.2019', 'dd.mm.yyyy') - level + 1 dat
FROM dual
CONNECT BY level <= to_date('09.11.2019', 'dd.mm.yyyy') - to_date('13.05.2019', 'dd.mm.yyyy') + 1

как выбрать каждый 90-й день
10 июн 19, 10:50    [21905753]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
Dshedoo
Member

Откуда:
Сообщений: 322
with q as (select '13.05.2019 - 09.11.2019' as "promeжytok dat" from dual)

select to_date(regexp_substr("promeжytok dat",'\d{2}\.\d{2}\.\d{4}',1,1),'DD.MM.YYYY')+level
, level
from q
where mod(level,90) = 0
connect by to_date(regexp_substr("promeжytok dat",'\d{2}\.\d{2}\.\d{4}',1,1),'DD.MM.YYYY')+level <= to_date(regexp_substr("promeжytok dat",'\d{2}\.\d{2}\.\d{4}',1,2),'DD.MM.YYYY')
10 июн 19, 10:54    [21905755]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
Надфиль
Member

Откуда:
Сообщений: 88
Dshedoo,
без reg_exp это, конечно, не написать. :D
10 июн 19, 12:26    [21905849]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
-2-
Member

Откуда:
Сообщений: 14650
evgenyb84
как выбрать каждый 90-й день
Изменить условие и умножить.
10 июн 19, 12:43    [21905858]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
evgenyb84
Member

Откуда:
Сообщений: 16
Как это сделать без regexp_substr?
10 июн 19, 13:31    [21905896]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
Да ну
Member

Откуда: Первопрестольная
Сообщений: 225
evgenyb84
не понимаю ваших ответов

Вывел диапазон дат запросом:

SELECT to_date('09.11.2019', 'dd.mm.yyyy') - level + 1 dat
FROM dual
CONNECT BY level <= to_date('09.11.2019', 'dd.mm.yyyy') - to_date('13.05.2019', 'dd.mm.yyyy') + 1

как выбрать каждый 90-й день

Рыба:
select date'2019-05-13' + level * 90 
from dual
connect by date'2019-05-13' + level * 90 <= date'2019-11-09'
10 июн 19, 13:44    [21905910]     Ответить | Цитировать Сообщить модератору
 Re: промежуток дат через N - е количество дней  [new]
evgenyb84
Member

Откуда:
Сообщений: 16
Спасибо большое!
10 июн 19, 13:59    [21905924]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить