Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何循环遍历javascript存储过程snowflake中的日期字符串参数_Javascript_Sql_Date_Stored Procedures_Snowflake Cloud Data Platform - Fatal编程技术网

如何循环遍历javascript存储过程snowflake中的日期字符串参数

如何循环遍历javascript存储过程snowflake中的日期字符串参数,javascript,sql,date,stored-procedures,snowflake-cloud-data-platform,Javascript,Sql,Date,Stored Procedures,Snowflake Cloud Data Platform,我不熟悉javascript,snowflake在存储过程中使用类似js的语法 我正在尝试创建动态SQL,以便它在开始日期和结束日期之间循环,以便根据日期从不同的s3文件夹复制到其中 CREATE PROCEDURE load_dynamic_s3path_to_table(begin_date strings, end_date strings) AS $$ var stmt = snowflake.createStatement( {sqlText: &q

我不熟悉javascript,snowflake在存储过程中使用类似js的语法

我正在尝试创建动态SQL,以便它在开始日期和结束日期之间循环,以便根据日期从不同的s3文件夹复制到其中

CREATE PROCEDURE load_dynamic_s3path_to_table(begin_date strings, end_date strings)
AS
$$

    
    var stmt = snowflake.createStatement(
        {sqlText: "copy into table from s3://test/2020-01-01/"}
        );
    var rs = stmt.execute();

$$;
基于存储过程中的日期参数,例如开始日期2020-01-01、结束日期2020-01-03

我想执行复制到命令3次

copy into table from s3://test/2020-01-01/
copy into table from s3://test/2020-01-02/
copy into table from s3://test/2020-01-03/
我认为伪代码是这样的:

CREATE PROCEDURE load_dynamic_s3path_to_table(begin_date strings, end_date strings)
AS
$$
    var dates = begin_date
    while date(dates)>=date(begin_date) and date(dates)<date(end_date)
        var stmt = snowflake.createStatement(
            {sqlText: "copy into table from s3://test/" + dates}
            );
        var rs = stmt.execute();
        dates+=1

$$;
CREATE PROCEDURE load\u dynamic\u s3path\u to\u table(开始日期字符串、结束日期字符串)
作为
$$
变量日期=开始日期

虽然date(dates)>=date(begin_date)和date(dates)在JavaScript中管理日期并不简单,但此存储过程满足您的需要:

创建或替换过程日期(“开始日期”字符串、“结束日期”字符串)
返回字符串
语言javascript
作为
$$
函数打印日期(d){
返回d.toISOString().split(“T”)[0]
}
函数执行查询(d){
var stmt=snowflake.createStatement({
sqlText:“选择'+d+“'x”
//“从s3://test/”复制到表中”+d
});
var rs=stmt.execute();
rs.next();
返回rs.getColumnValue(1);
}
var运行日期=新日期(开始日期)
var last_day=新日期(结束日期)
var总天数=(最后一天-运行日期)/(1000*60*60*24);
cs=[]

对于(var iter=0;iterthanks alot@Felipe Hoffa,我很难处理js和snowflake sql之间的日期,您做得很好。我能够使用上述方法生成动态sql