JOOQ:获取具有自定义月份范围的会计季度



https://www.jooq.org/doc/latest/manual/sql-building/column-expressions/datetime-functions/quarter-function/

这适用于正常季度。如果我想让它在一个有自定义月份的财政季度工作,该怎么办?


财务季度平均值。。它可以是任何一个月,而不是一月份作为第一季度的开始月份。

如果我认为八月是我财政年度的第一个月。

我的财政季度看起来像这样:

Aug-Sep-Oct'2021 => 1st fiscal quarter '2021
Nov-Dec-Jan'2022 => 2nd fiscal quarter '2021
Feb-March-April'2022 => 3rd fiscal quarter '2021
May-June-July'2022 => 4th fiscal quarter '2021

如果您的会计季度严格以月为基础,为什么不在DSL.month(date)上进行一些运算,例如:

trunc(month(DATE_COLUMN).add(4).div(3)).mod(4).add(1)

PostgreSQL中的一个例子:

select d, trunc((extract(month from d) + 4) / 3) % 4 + 1
from (
select (date '2000-01-01' + i * interval '1 month')::date
from generate_series(0, 11) as t(i)
) t(d)

导致

|d         |?column?|
|----------|--------|
|2000-01-01|2       |
|2000-02-01|3       |
|2000-03-01|3       |
|2000-04-01|3       |
|2000-05-01|4       |
|2000-06-01|4       |
|2000-07-01|4       |
|2000-08-01|1       |
|2000-09-01|1       |
|2000-10-01|1       |
|2000-11-01|2       |
|2000-12-01|2       |

dbfiddle在这里。现在,根据财政年度的第一个月是什么,通过切换add(4)值来相应地调整公式。

最新更新