Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Date 在雪花中转换日期的步骤_Date_Snowflake Cloud Data Platform - Fatal编程技术网

Date 在雪花中转换日期的步骤

Date 在雪花中转换日期的步骤,date,snowflake-cloud-data-platform,Date,Snowflake Cloud Data Platform,我正试图精确地使用日期时间戳,结果遇到了麻烦。我的要求如下 我有一个stage表,其中数据作为JSON存储在一个Variant列中,该列中的数据如下所示 { “message_body”: { “campus_code”: “TEST”, “campus_name”: “TEST”, “event_type”: “TEST”, “location_code”: “A00000”, “location_name”: “TEST”, “order”: { “credit_total”: 0, “ap

我正试图精确地使用日期时间戳,结果遇到了麻烦。我的要求如下

我有一个stage表,其中数据作为JSON存储在一个Variant列中,该列中的数据如下所示

{
“message_body”: {
“campus_code”: “TEST”,
“campus_name”: “TEST”,
“event_type”: “TEST”,
“location_code”: “A00000”,
“location_name”: “TEST”,
“order”: {
“credit_total”: 0,
“app_version”: “1.0.9”,
“asap”: 1,
“order_datetime”: “2021-01-08 18:19:34”
}
“timezone_offset_minutes”: -360,
}
}
我有以下要求

将Datetime转换为only date,因此我尝试了下面的方法,但失败了

select TO_TIMESTAMP((body:message_body:order:order_datetime), ‘yyyy-mm-dd HH24:MI:SS’) 
FROM “stage_table”
。它失败了,并显示以下错误消息

SQL compilation error: error line 1 at position 7 too many arguments for function [TO_TIMESTAMP(GET(GET(GET(stage_table.BODY, ‘message_body’), ‘order’), ‘order_datetime’), ‘yyyy-mm-dd HH24:MI:SS’)] expected 1, got 2
我得从订单日期时间中减去分钟数。我必须从中减去时区偏移时间 订单日期时间

select datetime, dateadd(minute, -300, body:message_body:order:complete_datetime) 
FROM
“stage_table”
。它失败了,并显示以下错误消息

SQL compilation error: error line 1 at position 7 too many arguments for function [TO_TIMESTAMP(GET(GET(GET(stage_table.BODY, ‘message_body’), ‘order’), ‘order_datetime’), ‘yyyy-mm-dd HH24:MI:SS’)] expected 1, got 2
无法识别时间戳“”

非常感谢任何快速的帮助


谢谢

如果您将提取的order_datetime转换为string with::string:

以样本_表为例 选择parse_jsonreplace'{ “消息正文”:{ “校园代码”:“测试”, “校园名称”:“测试”, “事件类型”:“测试”, “位置代号”:“A00000”, “位置名称”:“测试”, “命令”:{ “信贷总额”:0, “应用程序版本”:“1.0.9”, “尽快”:1, “订单日期时间”:“2021-01-08 18:19:34” } , “时区偏移量分钟”:-360, } }",",","体",
选择TO_TIMESTAMPbody:message_body:order:order_datetime::string,'yyyy-mm-dd HH24:MI:SS' 从样本表 -2021-01-08T18:19:34Z
TO_时间戳只接受一个参数,您不需要将日期格式作为第二种格式传递。从stage_表中选择to_TIMESTAMPbody:message_body:order:order_datetime并失败,出现以下错误无法识别时间戳应为:选择以_Timestamp body:message_body.order.order_datetime FROM stage_table。你知道:只有在第一场比赛中,剩下的是一个点走。我也尝试了上面的方法,但仍然失败。这很有帮助。非常感谢。如果有帮助,请投票并接受答案: