Создание диапазона дат в SQL - PullRequest
0 голосов
/ 10 мая 2018

Учитывая диапазон дат:

'20180504' and '20180425'

Я хочу написать запрос, который будет возвращать следующие даты

'20180504'
'20180503'
'20180502'
'20180501'
'20180430'
'20180429'
'20180428'
'20180427'
'20180426'
'20180425'

Может кто-нибудь предложить, какой будет лучший способ создания даткак это?Формат даты должен быть таким же, как указано выше, потому что я бы использовал его для извлечения данных из другой таблицы.Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Вы можете использовать иерархический запрос:

SQL Fiddle

Запрос 1 :

SELECT TO_CHAR( DATE '2018-04-25' + LEVEL - 1, 'YYYYMMDD' ) AS value
FROM   DUAL
CONNECT BY DATE '2018-04-25' + LEVEL - 1 <= DATE '2018-05-04'

Результаты :

|    VALUE |
|----------|
| 20180425 |
| 20180426 |
| 20180427 |
| 20180428 |
| 20180429 |
| 20180430 |
| 20180501 |
| 20180502 |
| 20180503 |
| 20180504 |
0 голосов
/ 10 мая 2018

Кажется, вам нужен вывод строки, поэтому вы можете сгенерировать даты и затем преобразовать их в строки:

with dates as (
      select date '2018-04-25' + level - 1 as dte
      from dual
      connect by date '2018-04-25' + level - 1 <= date '2018-05-04'
     )
select to_char(dte, 'YYYYMMDD')
from dates;

Вот rextester .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...