雪花变量和时间戳



我做了很多搜索,但无法找到下面问题的答案。我相信答案很简单。

我正在尝试创建一个静态时间戳,我将能够在整个存储过程中使用它。

因此,在下面的例子中,我试图将CURRENT_TIMESTAMP((写入一个变量,然后在update语句中调用它。

我在表格中得到的输出是";[对象对象]";,目前这是一个varchar列。理想情况下,希望它输入到时间戳列中,但出现错误。

创建或替换过程SP_TEST_RUN((

返回VARCHAR

语言JAVASCRIPT作为$$

var STORE_DATE1=雪花执行({sqlText:"select CURRENT_TIMESTAMP(("}(;

snowflake.execute({sqlText:"UPDATE MY_TABLE SET TOKEN_1=';+STORE_DATE1+"';}(;

$$;

非常感谢!

execute命令返回一个结果集,您需要从中选择所需的值。文档中有很多这样的例子-查找getColumnValue方法

在NickW的帮助下,设法解决了这个问题!

正如NickW正确指出的那样,需要使用getColumnValue,这将在结果中循环,因为只有1个条目。只需要发生一次。

需要注意的一点是,我不得不加上";toISOString(("到变量,它将JAVA变量转换为TIMESTAMP SQL可以理解,否则JAVA将自动将时间戳转换为字符串。

创建或替换过程SP_TEST_RUN((返回VARCHAR语言JAVASCRIPT

作为$$

var STORE_DATE1=雪花执行({sqlText:"select CURRENT_TIMESTAMP(("}(;

而(STORE_DATE1.next(((

{
var STORE_DATE2 = STORE_DATE1.getColumnValue(1);    
}

snowflake.execute({sqlText:"UPDATE MY_TABLE SET INSERT_DATE_TIME="+STORE_DATE2.toISOString((+";}(;

$$;

相关内容

  • 没有找到相关文章

最新更新