将日期时间戳转换为雪花中的日期

时间:2021-02-03 20:34:37

标签: date format snowflake-cloud-data-platform

我正在尝试处理日期(准确地说是时间戳)并遇到了麻烦。我的要求如下。

我有一个阶段表,其中数据以 JSON 格式存储在 Variant Column 中,该列中的数据如下所示。

{ “邮件正文”: { “校园代码”:“测试”, “校园名称”:“测试”, “事件类型”:“测试”, “location_code”: “A00000”, “位置名称”:“测试”, “命令”: { “credit_total”:0, “app_version”:“1.0.9”, “尽快”:1, “完成日期时间”:“2020-11-19 00:08:20” } “timezone_offset_minutes”:-360, } }

我有以下要求

将日期时间转换为仅日期,所以我尝试了以下 2 个查询

  1. select trunc(to_date(body:message_body:order:complete_datetime), 'DAY') FROM "stage_table";

  2. select date_trunc('DAY', to_date(body:message_body:order:complete_datetime)) FROM "stage_table";

源日期是“2020-11-19 00:08:20”,两个查询都将输出返回为“2020-11-19 00:00:00”,即使我的预期值应该是“YYYY-MM-DD”。

非常感谢任何帮助

谢谢

Aravind N

1 个答案:

答案 0 :(得分:1)

我非常喜欢使用 :: 将值转换为其他类型。我能够在我自己的 Snowflake 实例中使用类似的嵌套 JSON 字段来实现这一点。这是我尝试适应您的用例:

select body:message_body:order:complete_datetime::date
from "stage_table"