在 Athena (Presto) 中出现 invalid_cast_argument 错误

Geeting invalid_cast_argument error in Athena (Presto)

我是 sql 的新手,我正在尝试一个简单的查询

select
        *,
        max(cast(version_date as date)) over (partition by id) mx_dt,
        min(cast(version_date as date)) over (partition by id) min_dt
    from "raw_data"."raw_brands";

但是我收到了这个错误:

AWS Athena 客户端出现错误。 INVALID_CAST_ARGUMENT:值无法转换为日期:2020-01-16 19:09:25.086223

有一些方法。

  1. 使用date_parse函数。
presto> select date_parse('2020-01-16 19:09:25.086223', '%Y-%m-%d %H:%i:%s.%f');
          _col0
-------------------------
 2020-01-16 19:09:25.086

然后投到日期。

presto> select date(date_parse('2020-01-16 19:09:25.086223', '%Y-%m-%d %H:%i:%s.%f'));
   _col0
------------
 2020-01-16

presto> select cast(date_parse('2020-01-16 19:09:25.086223', '%Y-%m-%d %H:%i:%s.%f') as date);
   _col0
------------
 2020-01-16
  1. 使用substr函数
presto> select cast(substr('2020-01-16 19:09:25.086223', 1, 10) as date);
   _col0
------------
 2020-01-16