【问题标题】:Snowflake Failed to cast variant value "{TIMESTAMP VALUE}" to TIMESTAMP_NTZSnowflake 无法将变体值“{TIMESTAMP VALUE}”转换为 TIMESTAMP_NTZ
【发布时间】:2020-09-24 14:41:46
【问题描述】:
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"

【问题讨论】:

  • JSON 中是否有一个属性具有这样的值?假设它以YYYY-MM-DD开头,DD部分有问题,因为它是三个数字。

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


【解决方案1】:

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

如果您想将该日期解析为 null,您可以改用 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

【讨论】:

    猜你喜欢
    • 2023-01-29
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2023-02-04
    • 2010-11-24
    • 1970-01-01
    相关资源
    最近更新 更多