【发布时间】:2020-05-19 16:22:38
【问题描述】:
我正在寻找一个在 Oracle Developer SQL 中工作的 SQL 解决方案,它将根据 sysdate 计算当前季度的开始和结束日期,并且会计日历从 2020 年 2 月 1 日开始。每个季度是固定的 13 周( 91 天)-- 不是 3 个月,因此每年的会计日历略有不同。
代码将被上传到自动报告中,并且不想每年调整它。
附上本年度会计日历作为示例说明。
Current Fiscal Calendar
我开始走这条路,但当我意识到开始日期无法以这种格式正确时迷路了。
结束解决方案将用于 where 子句以确定报告日期范围,例如 (其中 Report_Date 在 Modified_Quarter_Start 和 sysdate 之间)
select trunc(add_months(add_months(trunc(sysdate,'Y') -1 ,
to_number(to_char(sysdate,'Q')) * 3),-1),'MM')
start_date,trunc(add_months(add_months(trunc(sysdate,'Y') -1 ,
to_number(to_char(sysdate,'Q')) * 3),+2),'MM')-1 Endd_date,
add_months(trunc(sysdate,'Y') -1 ,to_number(to_char(sysdate,'Q')) * 3) end_date ,
to_char(sysdate,'YYYY - q') qtr from dual
非常感谢任何帮助。
【问题讨论】:
-
所以你的季度总是从星期日开始,每年提前 1 或 2 天开始?这应该返回季度的第一天:
date '2020-02-01' + (trunc((current_date - date '2020-02-01') / 91) * 91),加上 90 天得到 last_day -
请提供更多示例数据。例如,2021-01-31 的会计日期是什么时候? 2022-01-31 的? 2030-01-31 的?
-
看来我和你一样打字,请看下文。 2021 年 1 月 31 日财政日期将是 22 财年第一季度。对于这么大的公司来说,这是一种非常奇怪的财务日历方式。
-
季度实际上总是从星期六开始
标签: sql date oracle-sqldeveloper calculation