最近六个季度的数据,包括当前季度

时间:2019-05-06 17:26:25

标签: sql oracle

如何在Oracle中获取last 6 quarter的数据,包括当前季度。我的意思是,如果我今天运行查询,那么01-JAN-201830-JUN-2019之间的数据应该包含在查询中。

2 个答案:

答案 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_monthstrunc函数用于带有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;

Demo for verification

  

对于开始日期,考虑 -3 *(6-1)= -3 * 5 ,从 5 个季度开始计算,以便能够计算包括当前季度在内的6 季度。 3 是   很明显是每个季度中的个数。

相关问题