将 YYYYMMDD 字符串转换为 Snowflake 中的 YYYY-MM-DD 日期格式

Jul*_*ayi 2 sql snowflake-cloud-data-platform

根据 Snowflake文档中提到的示例,为什么仅通过更改 ORDER BY 子句,日期和时间戳值就会返回不同的值?另外,我正在尝试将字符串转换为日期格式,该格式在 Snowflake 中不会返回正确的结果,而这在其他基于 SQL 的引擎中工作正常。需要这方面专家的帮助。

这个查询

SELECT '20200710', TO_DATE('20200710');
Run Code Online (Sandbox Code Playgroud)

返回以下输出

20200710 | 1970年8月22日

还尝试过:

SELECT TO_DATE('20200710', 'YYYY-MM-DD');
Run Code Online (Sandbox Code Playgroud)

并得到错误:

无法将“20200710”解析为格式为“YYYY-MM-DD”的日期

Gor*_*off 13

要转换为日期数据类型,您可以使用:

SELECT TO_DATE('20200710', 'YYYYMMDD')
Run Code Online (Sandbox Code Playgroud)

我建议只保留日期数据类型。但如果您想要格式为 YYYY-MM-DD 的字符串:

SELECT TO_CHAR(TO_DATE('20200710', 'YYYYMMDD'), 'YYYY-MM-DD')
Run Code Online (Sandbox Code Playgroud)