Amazon Athena上使用大于或等于符号与日期不起作用。

0

【以下的问题经过翻译处理】 在Amazon Athena上有一张表,其中一个列名为“sessiondate”,数据类型为varchar。

Column1Column2sessiondate
Data1Data62022-06-27
Data2Data72022-06-27
Data3Data82022-07-25
Data4Data92022-12-19
Data5Data122023-01-11

我使用以下SQL查询语句已经使用了将近6个月,直到昨晚(4/13 10PM)。

但是,自从昨晚以来,SQL查询发生错误, complaining '>=' cannot be applied to varchar, date

SELECT * FROM MyDatabase.MyTable
WHERE sessiondate >= DATE('2022-12-18')

Enter image description here

为什么大于或等于符号不再起作用吗?

profile picture
专家
已提问 7 个月前20 查看次数
1 回答
0

【以下的回答经过翻译处理】 首先请注意,使用 varchar 进行查询比较,会基于自然排序,这可能会与预期结果不符合。在使用Athena引擎版本2和3时都遇到了相同的错误:

“'>=' 无法应用于varchar”

然后我尝试从SQL语句中删除“DATE”并成功运行了查询。

此外,您也可以按以下格式查询,我已在我的环境中进行了测试,一切正常。

SELECT * FROM MyDatabase.MyTable WHERE sessiondate >= ('2022-12-18')

SELECT * FROM MyDatabase.MyTable WHERE cast(sessiondate as date) >= date('2022-12-18')

请检查是否最近在日期列中添加了不同类型的新数据。

或者检查查询执行是否存在任何更改,例如使用Athena版本2或3、使用了IAM角色或任何IAM权限等,或者“sessiondate”列是否存在任何模式更改。

您可以从Glue或Athena控制台中检查和确认列模式。

为了进一步调查并找出问题的根本原因,我们需要一些不公开的详细信息。请使用以下链接向AWS提交支持案例:

https://support.console.aws.amazon.com/support/home#/case/create

profile picture
专家
已回答 7 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则