0

我的任务是获取从五个财政季度开始到现在的数据。对于像我这样的 Oracle 新手来说,这并不容易。我们的财政年度从 11 月 1 日开始,因此这是另一个维度。无论如何,这段代码似乎工作得很好。只是想我会分享,谁知道呢,也许你会发现一个错误或更好的方法。

4

2 回答 2

1

很少观察。

  • ADD_MONTHS(sysdate - interval '2' year, -3)可以简化为sysdate - interval '2-3' year to month
  • TRUNC(date)给出日期输出。所以不需要对它使用 TO_DATE 函数。
  • 我认为ADD_MONTHS(sysdate - interval '2' year, +1)是错误的。应该是简单sysdate - interval '2' year的。您可以通过将 sysdate 替换为 12 月中的日期来检查,date'2013-12-04'.

简化查询

select trunc(sysdate - interval '2-3' year to month,'Q')  as beg_qtr,
       trunc(sysdate - interval '2' year,           'Q') - 1  as end_qtr
from dual;
于 2013-11-14T04:34:10.170 回答
0
     select (TO_DATE(TRUNC(ADD_MONTHS(sysdate - interval '2' year, -3),'Q'),
     'DD-MM-YY')) AS BEG_QTR, TRUNC(ADD_MONTHS(sysdate - interval '2' year, +1), 'Q')
-1 AS END_QTR from DUAL
于 2013-11-13T20:47:04.613 回答