雪花无法将变体值“ {TIMESTAMP VALUE}”转换为TIMESTAMP_NTZ

时间:2020-09-24 14:41:46

标签: sql json copy snowflake-cloud-data-platform

copy into DB.CANONICAL.ETAIL_TABLE(MAKE, SERIAL_NUMBER, DEVICE_KEY, CONFIG_TYPE, CSF, MESSAGE_TIMESTAMP)
from (select parse_json($1):header:make::Varchar(255),
    parse_json($1):header:serialNumber::Varchar(255),
    parse_json($1):header:deviceKey::Varchar(36),
    parse_json($1):header:configType::String, 
    parse_json($1), 
    parse_json($1):header:messageTimestamp::TIMESTAMP_NTZ(2)
from @DB.CANONICAL.ETAIL_STAGE/firehose/)
ON_ERROR = CONTINUE;

上面是我所做的复制语句。但我不断收到以下错误 “无法将变量值“ 2020-09-265T08:03:42.358Z”强制转换为TIMESTAMP_NTZ”

1 个答案:

答案 0 :(得分:2)

输入数据存在问题:265年9月不是日期。

如果要将日期解析为空,则可以使用TRY_CAST

如果您想确定日期(9月26日?9月25日?),可以先尝试使用正则表达式。

SELECT '2020-09-265T08:03:42.358Z'::TIMESTAMP_NTZ;
# Timestamp '2020-09-265T08:03:42.358Z' is not recognized

SELECT '2020-09-26T08:03:42.358Z'::TIMESTAMP_NTZ;
# 2020-09-26 08:03:42.358

SELECT TRY_CAST('2020-09-265T08:03:42.358Z' AS TIMESTAMP_NTZ);
# null