【问题标题】:Snowflake - CREATE table with a date variable in its nameSnowflake - 创建名称中带有日期变量的表
【发布时间】:2020-08-12 18:27:03
【问题描述】:

我想在雪花中创建一个表,将日期附加到其名称的末尾。最好的方法是什么?

  • 原始表 = "DB"."SCHEMA"."CLONEME"
  • 所需的新表 = "DB"."SCHEMA"."CLONEME_20200812BKP"

尝试设置日期变量,但没有成功。

第一次尝试:

set var1= (SELECT TO_CHAR(DATE_TRUNC('DAY',CONVERT_TIMEZONE('UTC', CURRENT_DATE())),'YYYYMMDD'));
set var2 = concat('DB.SCHEMA.CLONEME_',$var1);
create table $var2 clone DB.SCHEMA.CLONEME;
-- and got the following error:
-- SQL compilation error: syntax error line 1 at position 13 unexpected '$var2'.

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

    我建议使用 IDENTIFIER 函数:

    https://docs.snowflake.com/en/sql-reference/identifier-literal.html

    例子:

    CREATE OR REPLACE  TABLE CLONEME(
        src_string VARCHAR(20));
    
    INSERT INTO CLONEME 
    VALUES('JKNHJYGHTFGRTYGHJ'), ('ABC123'), (null), ('0123456789');
    
    set var1= (SELECT TO_CHAR(DATE_TRUNC('DAY',CONVERT_TIMEZONE('UTC', CURRENT_DATE())),'YYYYMMDD'));
    set var2 = concat('CLONEME_',$var1);
    
    SELECT getvariable('VAR1'), getvariable('VAR2');
    --20200812  CLONEME_20200812
    
    create table identifier($var2) clone CLONEME;
    --Table CLONEME_20200812 successfully created
    

    我希望这会有所帮助...丰富

    附言如果这个(或另一个)答案对您有帮助,请花点时间“接受”有帮助的答案 通过单击答案旁边的复选标记将其从“灰色”切换为“已填充”。

    【讨论】:

    • ? 完美。惊人的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    相关资源
    最近更新 更多