Возврат последних шести месяцев текущей даты (ORACLE) - PullRequest
0 голосов
/ 10 февраля 2020

Добрый день.

Я хотел бы получить список за последние шесть месяцев до текущей даты.

Пример.

Current Date -> 10/02/2020

Предпочитаемый формат вывода в избранном Oracle Запрос:

02-2020 -> (Current)
01-2020
12-2019
11-2019
10-2019
09-2019

С наилучшими пожеланиями и большое спасибо

Ответы [ 2 ]

3 голосов
/ 10 февраля 2020

Одним из способов является использование connect by:

select to_char(add_months(sysdate, -level + 1), 'mm-yyyy') mth from dual connect by level <= 6
1 голос
/ 10 февраля 2020

Чтобы ответить на ваш вопрос о заказе - чтобы заказать что-либо в SQL, вам нужно использовать предложение ORDER BY. В этом случае вы не можете легко упорядочить форматированные даты, но вы можете использовать значение LEVEL, сгенерированное CONNECT BY:

SELECT TO_CHAR(ADD_MONTHS(SYSDATE, 1 - LEVEL), 'MM-YYYY')
  FROM DUAL
  CONNECT BY LEVEL <= 6
  ORDER BY LEVEL DESC
...