Snowflake - 在查询结果中设置日期时间格式

Snowflake - Setting Date Time format in result of Query

我是 运行 雪花查询然后导出。我需要 set/convert 从 2022-02-23 16:23:58.805

到以下格式 'yyyy-MM-ddThh:mm:ss' 的日期值

我不确定转换日期格式的最佳方式是什么。我尝试使用 TO_TIMESTAMP,但不断收到以下错误 '1 too many arguments for function [TO_TIMESTAMP(FSA.LAST_UPDATED, 'yyyy-MM-ddThh:mm:ss')] expected 1, 得到 2'

这看起来像是一个转换问题。请检查您的列 last_updated 的数据类型。您的问题似乎也有一些错字 - 对于格式的时间部分,请使用 mi (hh:mi:ss)。 参考下面-

SNOWFLAKE1#COMPUTE_WH@TEST_DB.PUBLIC>select to_timestamp('2022-02-23 16:23:58.805'::TIMESTAMP,'yyyy-mm-dd hh:mi:ss.ff')
                                     ;
000939 (22023): SQL compilation error: error line 1 at position 7
**too many arguments for function [TO_TIMESTAMP(TO_TIMESTAMP_NTZ('2022-02-23 16:23:58.805'), 'yyyy-mm-dd hh:mi:ss.ff')] expected 1, got 2**
SNOWFLAKE1#COMPUTE_WH@TEST_DB.PUBLIC>select to_timestamp('2022-02-23 16:23:58.805'::string,'yyyy-mm-dd hh:mi:ss.ff');
+--------------------------------------------------------------------------+
| TO_TIMESTAMP('2022-02-23 16:23:58.805'::STRING,'YYYY-MM-DD HH:MI:SS.FF') |
|--------------------------------------------------------------------------|
| 2022-02-23 16:23:58.805                                                  |
+--------------------------------------------------------------------------+
1 Row(s) produced. Time Elapsed: 0.123s

TO_TIMESTAMP is for string -> timestamp, TO_CHAR 用于时间戳 -> 字符串,其中 TO_CHAR( <date_or_time_expr> [, '<format>' ] ) 形式是您似乎想要的形式。

这个 SQL 显示字符串 -> 时间戳 -> 格式化字符串

SELECT
    '2022-02-23 16:23:58.805' as time_string,
    to_timestamp(time_string) as a_timestamp,
    to_char(a_timestamp, 'yyyy-MM-ddThh:mm:ss') as formating_string;
TIME_STRING A_TIMESTAMP FORMATING_STRING
2022-02-23 16:23:58.805 2022-02-23 16:23:58.805 2022-02-23T16:02:58