如何在Oracle中获取last 6 quarter
的数据,包括当前季度。我的意思是,如果我今天运行查询,那么01-JAN-2018
到30-JUN-2019
之间的数据应该包含在查询中。
答案 0 :(得分:0)
您可以执行以下操作:
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
答案 1 :(得分:0)
您可以将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 是 很明显是每个季度中的月个数。