gpt4 book ai didi

sql - 如何迭代 PL/SQL 中的日期范围

转载 作者:太空狗 更新时间:2023-10-30 01:45:10 24 4
gpt4 key购买 nike

我需要编写一份报告,根据包含每条记录日期范围的表格生成汇总总计。

table data:
option start_date end_date
opt1 6/12/2009 6/19/2009
opt1 6/3/2009 6/13/2009
opt2 6/5/2009 6/6/2009

我想要的基本上是这样的:

date       option    count
6/1/2009 opt1 0
6/1/2009 opt2 0
6/2/2009 opt1 0
6/2/2009 opt2 0
6/3/2009 opt1 0
6/3/2009 opt2 1

我很难弄清楚如何遍历日期范围。我确信这是可以为此创建的一些简单游标,但我不知所措。最好在 PL/SQL 中

更新:

我最终使用了示例 here去完成我想做的事。这将创建一个生成日期表的函数。

最佳答案

我为此使用的一个解决方案是将日期范围转换为可在 for 循环中使用的整数范围,然后再转换回日期以对其进行处理。您不能以这种方式进行任何连接或任何操作,但这是一个比已经发布的解决方案小得多的解决方案:

declare
start_date number;
end_date number;
business_date varchar2(8);
begin
start_date := to_number(to_char(to_date('2013-04-25', 'yyyy-MM-dd'), 'j'));
end_date := to_number(to_char(to_date('2013-05-31', 'yyyy-MM-dd'), 'j'));
for cur_r in start_date..end_date loop
business_date := to_char(to_date(cur_r, 'j'), 'yyyy-MM-dd');
dbms_output.put_line(business_date);
end loop;
end;

关于sql - 如何迭代 PL/SQL 中的日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com