[英]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.