Данные последнего 6 квартала, включая текущий квартал - PullRequest
0 голосов
/ 06 мая 2019

Как получить данные last 6 quarter в Oracle, включая текущий квартал. Я имею в виду, если я выполню запрос сегодня, поэтому в запросе должны появиться данные от 01-JAN-2018 до 30-JUN-2019.

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Вы можете использовать функции add_months и trunc для значения даты с аргументом Q (квартал)

select t.*
  from tab t
 where insert_date between
       trunc(add_months(sysdate,-3*5),'Q')
   and trunc(add_months(sysdate,3),'Q')-1;

Демо для проверки

для даты начала, -3 * (6-1) = -3 * 5 считается, начиная с 5 квартал назад, чтобы иметь возможность считать 6 квартал, включая текущий квартал. 3 есть очевидно, что число месяцев в каждом квартале .

0 голосов
/ 06 мая 2019

Вы можете сделать что-то вроде этого:

SELECT
    *

FROM
    DUAL

WHERE
    DATE_FIELD >= (SYSDATE - (30*(3*6)))

То, что делает этот запрос, берет текущую дату (SYSDATE) и получает все значения из предыдущих 6 кварталов.Обоснование: 30 = days in a month | 3 = months in a quarter | 6 = quarters specified by OP

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