首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Snowflake中将YYYYMMDD转换为MM/DD/YYYY

在Snowflake中将YYYYMMDD转换为MM/DD/YYYY
EN

Stack Overflow用户
提问于 2020-09-24 02:06:22
回答 2查看 1.2K关注 0票数 0

我需要帮助弄清楚雪花中的日期转换逻辑。关于这一点,文档并不够清楚。

在SQL Server中,我会尝试

代码语言:javascript
运行
复制
SELECT CONVERT(DATE, '20200730', 101)

它给了我'07/30/2020‘。

如果我在Snowflake中尝试以下操作,

代码语言:javascript
运行
复制
to_varchar('20200730'::date, 'mm/dd/yyyy')

它告诉我‘1970年8月22日’。为什么它会给出一个完全不同的日期?在获得正确日期的逻辑方面需要帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-24 04:23:14

你所做的事情的问题是,你假设雪花正在将你的'20200730'::DATE字符串转换成2020-07-03。事实并非如此。您需要指定日期的输入格式。所以,基于你的问题有两个选择有点模糊:

如果您在表中有一个字符串,并且希望将其转换为日期,然后将其显示为格式化字符串:

代码语言:javascript
运行
复制
SELECT TO_VARCHAR(TO_DATE('20200730','YYYYMMDD'),'MM/DD/YYYY');
--07/30/2020

如果表中的字段已经是日期,那么您只需要直接对该字段应用TO_VARCHAR()片段。

与SQL Server不同,Snowflake以相同的格式存储日期字段,无论您提供什么格式。您需要使用TO_VARCHAR,以便在不同的way...or ALTER SESSION SET DATE_OUTPUT_FORMAT中格式化该日期。

票数 2
EN

Stack Overflow用户

发布于 2020-09-24 02:32:57

试试生成2020-07-30select to_varchar(TO_DATE( '20200730', 'YYYYMMDD' ), 'MM/DD/YYYY');

您可能需要参考https://docs.snowflake.com/en/user-guide/date-time-input-output.html#timestamp-formats

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64033859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档