如果文件加载到系统中,我被要求提供 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 的格式。
提前致谢。
这个解决方案怎么样?
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
另一种选择是
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;