【发布时间】:2019-03-24 04:48:34
【问题描述】:
我编写了一个查询,通过使用 sysdate 获取当前年份和上一年季度的开始日期。
例如。今天是今年第一季度,所以我只想得到去年第一季度和今年的开始日期。 如果我在 12 月(即第 4 季度),我想获得 8 个季度的开始日期(去年 4 个,今年 4 个。)
select b.dt,
to_number(to_char(SYSDATE, 'Q')),
to_number(to_char(b.dt, 'Q'))
from dual a,
(select add_months(trunc(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -12),
'yyyy'),
(rownum - 1) * 3) dt
from all_objects
where rownum <= 8
and add_months(trunc(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -12),
'yyyy'),
(rownum - 1) * 3) <= SYSDATE
and to_number(to_char(SYSDATE, 'Q')) >=
to_number(to_char(add_months(trunc(ADD_MONTHS(TRUNC(SYSDATE,
'MM'),
-12),
'yyyy'),
(rownum - 1) * 3),
'Q'))) b
此查询仅返回去年第一季度的开始日期。我也希望得到今年第一季度的开始日期。
【问题讨论】: