在雅典娜(Presto)中出现geinging invalid_cast_argument错误

时间:2020-01-24 19:15:52

标签: 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 个答案:

答案 0 :(得分:2)

有一些方法。

  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