You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Athena:如何转义保留字列名并转换为整数

问题解决:Athena中保留字列转换整数报错

错误原因分析

  1. 反引号查询报错:Athena基于Presto引擎,不支持MySQL风格的反引号`转义保留字,必须使用英文半角双引号"来包裹保留字列名,因此用反引号的查询属于语法不兼容,触发“Queries of this type are not supported”错误。
  2. 双引号查询报错:双引号已经正确识别了timestamp列,但列中存在空字符串值,直接用cast转换为整数时,空字符串无法被解析为INT类型,因此触发“INVALID_CAST_ARGUMENT: Cannot cast '' to INT”错误。

解决方案

方案1:使用try_cast容错转换

try_cast会在转换失败时返回NULL,而不是中断查询,适合存在无效值的场景:

SELECT "timestamp"
FROM my_table
WHERE from_unixtime(try_cast("timestamp" as integer)) >= date_add('day', -7, now())

方案2:先过滤空值再转换

如果不需要保留空值的行,可以先过滤掉空字符串,再执行转换:

SELECT "timestamp"
FROM my_table
WHERE "timestamp" != '' 
  AND from_unixtime(cast("timestamp" as integer)) >= date_add('day', -7, now())

注意事项

Athena中处理保留字列名时,必须使用英文半角双引号包裹,双引号同时会保留列名的大小写(如果你的列名是小写timestamp,双引号包裹后无需调整大小写)。

内容的提问来源于stack exchange,提问作者Captain Caveman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:48:21