在 Snowflake 脚本存储过程中向导出 .csv 文件名添加时间戳

Add a timestamp to an export .csv file name in Snowflake Scripting Stored Procedure

我正在使用 Snowflake Scripting 编写存储过程,我需要在其中将 Snowflake table 复制到 .csv 文件中,并在文件名中添加时间戳。此 table 将在过程的早期创建,并将使用变量名保存。我有两个问题:

(1) 如何在复制命令的 from 语句中使用 table 变量名?

(2) 如何保存带有今天日期戳的 .csv 文件名?

下面是我如何 运行 在 Snowflake SQL 中执行此复制命令,其中 my_table 是我要复制的 table 的名称,并且文件名是硬编码的,而不是变量。

          copy into @my_stage/my_file_03072022.csv
            from table($my_table)
            file_format=(type=csv compression=none skip_header=1
                field_optionally_enclosed_by= '"')
                header = true
                single = true
                max_file_size = 4900000000
                ;

感谢您的帮助!

您是在问如何将日期格式化为 MMDDYYYY 格式,因此:

SELECT TO_CHAR(current_date,'mmddyyyy');
TO_CHAR(CURRENT_DATE,'MMDDYYYY')
03082022

或如何获取该值并在 Snowflake 脚本块中使用它,例如:

DECLARE
   query STRING;
   date_str STRING;
BEGIN 
    SELECT TO_CHAR(current_date,'mmddyyyy') INTO :date_str;
    QUERY := 'copy into @my_stage/my_file_' || date_str || '.csv table($my_table) 
    file_format=(type=csv compression=none skip_header=1
        field_optionally_enclosed_by= \'"\')
        header = true
        single = true
        max_file_size = 4900000000;';
                 
   --EXECUTE IMMEDIATE :QUERY;
   
   RETURN :QUERY;
END;
anonymous block
copy into @my_stage/my_file_03082022.csv table($my_table) file_format=(type=csv compression=none skip_header=1 field_optionally_enclosed_by= '"') header = true single = true max_file_size = 4900000000;