小编典典

在ORACLE中查找最后一个季度的第一天和最后一天

sql

我有以下形式的查询:

select *
from X
where <some_date is in the last quarter>

我很难确定上个季度的正确日期。因此,假设当前日期是 7月1日 ,即第三季度,我想将 4月1日 作为FIRST,将 6月30日 作为最后
一个季度 (即第二季度)的最后一天。

谷歌搜索了一下,找到了很多解决方案,但是每个解决方案都涵盖了SQL Server和可用的时髦方法,在我们的ORACLE数据库(Oracle10g和11g)上不可用。

哦,是的,我还需要能够将整个内容放入一个查询中,因为这是某些工具的限制,它将进一步处理该查询…:/


阅读 400

收藏
2021-03-23

共1个答案

小编典典

这是比较简单的方法,但可能仍然不是最简单的方法:

SELECT
  ADD_MONTHS(TRUNC(SYSDATE, 'Q'), -3) AS First,
  TRUNC(SYSDATE, 'Q') - 1 AS Last
FROM DUAL

也许您也可以使用子选择,例如这样,以排除某些重复代码:

SELECT
  ADD_MONTHS(D, -3) AS First,
  D - 1 AS Last
FROM (SELECT TRUNC(SYSDATE, 'Q') AS D FROM DUAL)
2021-03-23