INVALID_CAST_ARGUMENT:值无法转换为日期

use*_*285 4 presto amazon-athena

我在 Athena 表中有列作为时间 -> 字符串

我正在尝试转换为日期时间,如下所示:

SELECT
     "source"
   , "account"
   , CAST(time as date) Datetime
   
   FROM
     "testdata"
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

INVALID_CAST_ARGUMENT: Value cannot be cast to date: 2021-11-28T08:04:21Z
Run Code Online (Sandbox Code Playgroud)

The*_*heo 10

您的时间戳看起来像是使用 ISO 8601 格式化的,Athena 有一个函数:from_iso8601_timestamp

SELECT
  source,
  account,
  from_iso8601_timestamp("time") AS datetime
FROM testdata
Run Code Online (Sandbox Code Playgroud)

如果您只需要日期部分,可以将函数的结果转换为日期:

SELECT
  source,
  account,
  CAST(from_iso8601_timestamp("time") AS DATE) AS "date"
FROM testdata
Run Code Online (Sandbox Code Playgroud)