将正常人类可读的日期时间转换为 Snowflake 中的 unix 时间戳

问题描述 投票:0回答:1

我在雪花中创建了一个 SQL 模型,它给出了这些输出中的几个输出,我有两列是下一个:

  • 第一列:称为
    last_used
    ,以下一种格式提供人类可读的日期时间
    2023-12-01 20:24
  • 第二列称为
    date
    ,以下一种格式提供人类可读的日期:
    2023-12-01

雪花中是否有任何功能可以将这两列转换为unix时间戳,这与

to_timestamp()
相反?

另一方面,雪花中的unix时间戳是否有可能知道时区?

提前谢谢您!任何帮助表示赞赏

snowflake-cloud-data-platform unix-timestamp timestamp-with-timezone
1个回答
1
投票

根据日期和时间函数的文档,您要使用

epoch_second
和DATE_PART:

select 
    '2023-12-01 20:24'::timestamp as col_a
    ,'2023-12-01'::date as col_b
    ,date_part('epoch_second', col_a) as epoch_a
    ,date_part('epoch_second', col_b) as epoch_b
;

给出:

Unix 时间戳本身没有时区,这在我过去就是为什么服务器大多使用 GMT 来避免时区夏令时变化每年两次扰乱日志。但与所有时间戳一样,您可以通过 CONVERT_TIMEZONE 从一个时区转换为另一个时区,我只是明确说明源/目标时区,否则您将获得 Snowflake 服务器,而不是 GTM...

© www.soinside.com 2019 - 2024. All rights reserved.