我正在尝试处理日期(准确地说是时间戳)并遇到了麻烦。我的要求如下。
我有一个阶段表,其中数据以 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 个查询
select trunc(to_date(body:message_body:order:complete_datetime), 'DAY') FROM "stage_table";
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
答案 0 :(得分:1)
我非常喜欢使用 :: 将值转换为其他类型。我能够在我自己的 Snowflake 实例中使用类似的嵌套 JSON 字段来实现这一点。这是我尝试适应您的用例:
select body:message_body:order:complete_datetime::date
from "stage_table"