Oracle SQL 日期获取上个季度的第一天和上个季度的最后一天

问题描述 投票:0回答:2

如果文件加载到系统中,我被要求提供 Oracle PL/SQL 解决方案 例如,在 2017 年 1 月 1 日至 2017 年 3 月 31 日之间,我应该 从上个季度创建了两个日期一个加载的from date of 2016 年 10 月 1 日加载到 2016 年 12 月 31 日。这应该是未来的证明,意味着它应该在未来几年有效,所以如果一个文件加载到系统中,比如说 2019 年 8 月 21 日,它应该有一个开始日期 2019 年 4 月 1 日和 2019 年 6 月 30 日的迄今为止

这应该是一个 PL/SQL 解决方案,很可能是一个向主程序返回两个日期的过程,并且返回的 to 和 from date 应该采用 DD/MM/YYYY 的格式。

提前致谢。

oracle plsql procedure to-date
2个回答
1
投票

这个解决方案怎么样?

SELECT 
    TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'Q'), -3), 'DD/MM/YYYY') AS output_from_date,
    TO_CHAR(TRUNC(SYSDATE, 'Q')-1, 'DD/MM/YYYY') AS output_to_date
FROM dual;

OUTPUT_FROM_DATE    OUTPUT_TO_DATE
01/04/2017          30/06/2017

0
投票

另一种选择是

select
dateadd(day, 1, (last_day(dateadd(quarter, -2, current_timestamp()), quarter))) as last_qtr_start,
last_day(dateadd(quarter, -1, current_timestamp()), quarter) as last_qtr_end
from dual;
© www.soinside.com 2019 - 2024. All rights reserved.