TIMESTAMP数据从雪花导出到Excel

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

每当我使用“下载 Excel 的 .csv”(如下图所示)从 Snowflake 查询导出结果集时,我发现时间戳列的格式始终为

2023-05-31T02:54:20Z
。这使得在 Excel 中格式化变得困难,因为它不能直接工作 - 我正在尝试在 Excel 中格式化为
2023-05-31 2:54:20 AM

关于如何克服这个问题有什么建议吗? Snowflake 中是否有一个设置需要我们进行onetime 来防止每次都发生这种情况?如果字段是日期(无时间戳),则没有问题

sql timestamp snowflake-cloud-data-platform export-to-csv
1个回答
0
投票

I find that the timestamp columns are always formatted as 2023-05-31T02:54:20Z

Snowsight UI(下载结果)似乎总是使用 ISO 8061 来格式化日期/日期时间列。

使用 COPY INTO location 将数据卸载到用户/指定的内部阶段。

将数据从表(或查询)卸载到以下位置之一的一个或多个文件中:

命名内部阶段(或表/用户阶段)。然后可以使用 GET 命令从舞台/位置下载文件。


用户阶段:

-- unload into user stage
COPY INTO @~/export.csv
FROM (
   -- user query goes here
   SELECT 'a, a' AS col,  CURRENT_TIMESTAMP() AS col2, NULL as col3
)
 FILE_FORMAT=(TYPE=CSV,
             COMPRESSION=NONE
             TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS' -- desired format
             )
SINGLE = TRUE
OVERWRITE = TRUE 
HEADER = TRUE;

LIST @~/export.csv;
-- name size md5 last_modified

-- download using GET command
-- https://docs.snowflake.com/en/sql-reference/sql/get
-- cannot be run inside Snowsight
GET @~/export.csv file://<file_path_local_system>;

命名内部阶段和 Snowsight UI 以下载生成的文件:

CREATE STAGE unload DIRECTORY = ( ENABLE = true );

COPY INTO @~/export.csv
FROM (
   -- user query goes here
   SELECT 'a, a' AS col,  CURRENT_TIMESTAMP() AS col2, NULL as col3
)
 FILE_FORMAT=(TYPE=CSV,
             COMPRESSION=NONE
             TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS' -- desired format
             -- other options
             )
SINGLE = TRUE
OVERWRITE = TRUE 
HEADER = TRUE;

ALTER STAGE unload REFRESH;

输出:

COL,COL2,COL3
a\, a,2023-10-26 20:33:47,\\N

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