在 Snowflow 中格式化时间戳 ntz 以输出为日期时间 YYYY-MM-DDTHH:MMZ

问题描述

我在 SNowflake 中有 TIMESTAMP NTZ 字段。我需要按以下格式输出列的值:

pydatetime()

我尝试了以下方法,但没有用:

[datetime.datetime(2018,03,06,0),datetime.datetime(2018,07,08,09,10,11,12,0)]

解决方法

如果您想以特定方式表示 timestamp_ntz 字段,那么您可以像这样使用 to_char 函数(假设您想要 24 小时时间):

SELECT
    to_char(MAX("UPDATED_AT"),'YYYY-MM-DDTHH24:MIZ')
FROM HISTORY;

完整示例:

create or replace temporary table test_table
(
    id number,ts timestamp_ntz
);

insert overwrite into test_table
values (1,'2021-04-13T01:00:00'::timestamp_ntz),(2,'2021-04-14T01:00:00'::timestamp_ntz)
;

select
    id,to_char(ts,'YYYY-MM-DDTHH24:MIZ')
from test_table
;

以上产生:

+--+----------------------------------+
|ID|TO_CHAR(TS,'YYYY-MM-DDTHH24:MIZ')|
+--+----------------------------------+
|1 |2021-04-13T01:00Z                 |
|2 |2021-04-14T01:00Z                 |
+--+----------------------------------+