Snowflake - 使用 Current_Date 的 While 循环

Snowflake - While Loop using Current_Date

在 Snowflake 中,我试图 运行 有开始日期的 while 循环,代码将循环直到它等于今天的日期。

我对雪花本身还很陌生。

第一个想法是在 while 循环中检查变量日期是否小于当前日期。即使 Current_Date 本身或归因于变量

,我似乎也无法正常工作
 execute immediate $$
    declare
      opdate := '2022-04-29';
      currdate := Current_Date;
     begin
       while (opdate <=currdate) do
        opdate :=dateadd(day,1,opdate);
      end while;
    end;
    $$
    ;

'CURRDATE' cannot have its type inferred from initializer

第二种选择是使用 datediff 来查看变量与 current_date 之间的差异是否等于零

execute immediate $$
    declare
      opdate := '2022-04-29';
        currndate := 1;
     begin
       while (currndate<=0) do  
        currndate := datediff(day, opdate, CURRENT_DATE);
        opdate :=dateadd(day,1,opdate);
      end while;
    end;
    $$
    ;

error line 7 at position 39 invalid identifier 'CURRENT_DATE'

我已经尝试过此代码的许多不同变体,甚至在没有运气的情况下使用 for each 和 if 循环。我似乎无法检查变量是否小于当前日期。任何 help/pointers 将不胜感激。

没有 Current_Date 和设定的开始和结束日期,看起来 运行 很好

execute immediate $$
declare
  opdate := '2022-04-29';
  currdate := '2022-05-03';
 begin
   while (opdate <=currdate) do
    opdate :=dateadd(day,1,opdate);
  end while;
end;
$$
;

你能用开括号和闭括号试试 CURRENT_DATE() 吗?见下方区块

 execute immediate $$
    declare
      opdate := '2022-04-29';
      currdate := Current_Date();
     begin
       while (opdate <=currdate) do
        opdate :=dateadd(day,1,opdate);
      end while;
     return opdate; --added this return
    end;
    $$
    ;