我正在尝试将字符串类型的日期列转换为日期类型。
我在aws athena中使用以下查询:
SELECT col0, col1, col2, date_parse(replace(col3, '/', '-'), '%m-%d-%Y') AS start_date
FROM "bucket"."table"
WHERE col3 <> ''
这适用于某些记录,因为某些日期的格式如下: 12/08/2019
但其他日期的格式如下: 7/1/2019 0:06
其他一些日期的格式如下: 2020/04/10 08:39
这些不同格式的日期存在于同一列中。在这里处理脏数据。。。我明白为什么我的查询失败了,因为我只有 '%m-%d-%Y'
格式在那里。只是想知道我该如何处理这样的东西,以便它可以在一个查询中处理所有3种格式。
2条答案
按热度按时间cxfofazt1#
您可以使用
Coalesce
以及try
.不同的日期时间格式可以从这个presto文档页面获得。
d8tt03nd2#
我的直觉是当col3喜欢…,修剪定时风格的时间,用正确的第二个arg格式调用日期解析一次时使用case。另外,如果发现更多的异常,可以在更像表达式时使用。