【问题标题】:Converting the timestamp in Snowflake转换雪花中的时间戳
【发布时间】:2022-01-19 17:43:17
【问题描述】:

我正在尝试转换与Iterable date format兼容的雪花时间戳

我的尝试:

我有一张带有以下时间戳的表格:

|------------------------------|
|       table_timestamp        |
|------------------------------|
| "2021-07--19 02:45:91.000 Z" |
|------------------------------|

我尝试使用TIMESTAMP_TZ,得到以下结果

SELECT table_timestamp::TIMESTAMP_TZ 
from my_table

给我输出2021-07--19 02:45:91.000 +0000

如何获取2021-07--19 02:45:91 +00:00这种格式的上述时间戳?

【问题讨论】:

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


    【解决方案1】:

    您可以转换为 varchar 并作为第二个参数提供您想要的格式:

    SELECT TO_VARCHAR('2021-07-19 02:45:31.000'::Timestamp_TZ, 'yyyy-mm-dd hh:mi:ss')
    

    2021-07-19 02:45:31

    (请注意,我将秒数更改为 31,因为一分钟内没有 91 秒数,并且还将月份和日期之间的双破折号更改为单破折号。我假设这些是拼写错误)

    【讨论】:

    • 我尝试将其转换为 varchar 但在可迭代中它显示为字符串。我希望将其转换为日期数据类型
    • 如果您使用::Timestamp_TZ 成功转换为约会对象,那么您就是黄金。我们不担心雪花(或任何其他数据库)如何存储和表示时间戳或日期的格式。格式化用于数据的人工表示,其中使用请求的格式转换为 varchar 将是适当的层。也许我是误会了。另外..据我所知STRINGVARCHAR 在雪花中是相同的。
    • 不使用 VARCHAR,是否可以只获取 2021-07-19 02:45:31 作为时间戳格式?
    • 我想,我要说的是,引擎盖下没有格式。它只是存储在构成时间戳的位和字节中的数据。它并没有像它显示的那样真正存储它。但是,它在您的客户端中显示的默认格式是三位小数。不过,这就是它在后台显示相同数据的方式。您可以使用 output_timezone_format parameter 更改您的用户或会话的设置,或者您可以转换为 varchar/string 并告诉它使用什么格式。
    【解决方案2】:

    假设您正确转换日期/时间戳,这不是转换问题,而是演示问题。

    因此,Date and Time output formatting 帮助是您所需要的。

    【讨论】:

      猜你喜欢
      • 2021-08-28
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      相关资源
      最近更新 更多