尝试按日期过滤时,AWS Athena查询错误

时间:2018-10-13 23:28:54

标签: amazon-athena presto

我正在尝试使用Athena来查询一些我以镶木地板格式存储在s3存储桶中的数据。我有一个名为datetime的字段,该字段在我的AWS Glue数据目录中定义为日期数据类型。 Image showing schema details in Data Catalog

当我尝试在Athena中运行以下查询时,出现以下错误:

SELECT DISTINCT datetime 
FROM "craigslist"."pq_craigslist_rental_data_parquet"
WHERE datetime > '2018-09-14'
ORDER BY datetime DESC;

错误:

  

您的查询有以下错误:

     

SYNTAX_ERROR:第3行:16:“>”无法应用于日期,varchar(10)

我在这里做错了什么?如何按日期正确过滤此数据?

4 个答案:

答案 0 :(得分:1)

它与用于日期过滤器的字符串文字有问题。使用WHERE datetime > date '2018-09-14'

答案 1 :(得分:0)

您提供的字符串文字必须转换为日期,才能与日期进行比较。

where datetime = date('2019-11-27')

答案 2 :(得分:0)

from_iso8601_datedate应该可以工作。

SELECT DISTINCT datetime 
FROM "craigslist"."pq_craigslist_rental_data_parquet"
WHERE datetime > from_iso8601_date('2018-09-14')
ORDER BY datetime DESC;

都返回一个正确的日期对象。

SELECT typeof(from_iso8601_date('2018-09-14'))

enter image description here

答案 3 :(得分:0)

这里有点晚了,但我遇到了同样的问题,我找到的唯一解决方法是:

WHERE datetime > (select date '2018-09-14')