繁体   English   中英

在雪花中将 VARCHAR 转换为 DATE

[英]Convert VARCHAR to DATE in Snowflake

我需要将我的 varchar 转换为日期。

我的 varchar 看起来像这样:

活动日期
2020-09-20
2021-07-21
2021-01-20
2020-10-08

这是我尝试的解决方案:

SELECT
  TO_DATE(event_date,'YYYY-MM-DD')
FROM
  database.schema.table

这是我得到的错误:

Can't parse ' ' as date with format 'yyyy-mm-dd'

有人可以帮帮我吗? 谢谢!

您可以使用 try_to_date(event_date,'YYYY-MM-DD'),如果无法解析 event_date,它将返回 NULL(不会失败),您可以过滤并检查它究竟包含什么:

SELECT
  event_date                           as varchar_date,
  TRY_TO_DATE(event_date,'YYYY-MM-DD') as parsed_date
FROM
  database.schema.table
WHERE TRY_TO_DATE(event_date,'YYYY-MM-DD') IS NULL --filter and check

在检查了你有哪些格式之后,你可以使用 coalesce 来解析不同的格式:

coalesce(TRY_TO_DATE(event_date,'YYYY-MM-DD'),
         TRY_TO_DATE(event_date,'YYYYMMDD')
         )

答案是 trim() function 用于我的 varchar 周围的额外空格。 感谢大家!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM