Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
Snowflake cloud data platform 使用';分配dateadd表达式时出错;纳秒';到SQL中的变量(雪花)_Snowflake Cloud Data Platform_Dateadd - Fatal编程技术网

Snowflake cloud data platform 使用';分配dateadd表达式时出错;纳秒';到SQL中的变量(雪花)

Snowflake cloud data platform 使用';分配dateadd表达式时出错;纳秒';到SQL中的变量(雪花),snowflake-cloud-data-platform,dateadd,Snowflake Cloud Data Platform,Dateadd,我试图将dateadd表达式的结果分配给Snowflake sql脚本中的变量 当我使用除纳秒以外的任何日期或时间部分时,作业都可以正常工作。当我使用纳秒时,我得到以下错误: Unsupported feature 'assignment from non-constant source expression'** 纳秒的行为有不同的原因吗,还是这是一个错误 -- 'second' is successfully set into the variable set foo = dateadd(

我试图将dateadd表达式的结果分配给Snowflake sql脚本中的变量

当我使用除纳秒以外的任何日期或时间部分时,作业都可以正常工作。当我使用纳秒时,我得到以下错误:

Unsupported feature 'assignment from non-constant source expression'**
纳秒的行为有不同的原因吗,还是这是一个错误

-- 'second' is successfully set into the variable
set foo = dateadd("second"    , -1, '2019-10-25');

-- 'nanosecond' throws an error:
-- Unsupported feature 'assignment from non-constant source expression'.
set bar = dateadd("nanosecond", -1, '2019-10-25');
看起来像只虫子

select dateadd("nanosecond", -1, '2019-10-25') from dual

似乎工作得很好,同时数据类型在秒和纳秒之间都是相同的-日期转换为时间戳(9),因此也没有区别。

这确实是雪花的当前限制

今天,在
set
expressions中,右边应该是一个简单的表达式,对于它有一个“快速”的计算路径(不要过多地讨论细节)。对于“秒”,这样的路径存在,对于“纳秒”,则不存在

您可以通过将正确的表达式设置为“子查询”表达式来解决此问题,如下所示:

set x = (select dateadd(nanosecond, -1, '2019-10-25'));

这似乎是一个bug。我将在Snowflake内部提出它。这对我来说是一个很好的解决方法-推荐这种方法。