我正在尝试使用Athena来查询一些我以镶木地板格式存储在s3存储桶中的数据。我有一个名为datetime
的字段,该字段在我的AWS Glue数据目录中定义为日期数据类型。
当我尝试在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)
我在这里做错了什么?如何按日期正确过滤此数据?
答案 0 :(得分:1)
它与用于日期过滤器的字符串文字有问题。使用WHERE datetime > date '2018-09-14'
答案 1 :(得分:0)
您提供的字符串文字必须转换为日期,才能与日期进行比较。
where datetime = date('2019-11-27')
答案 2 :(得分:0)
from_iso8601_date
或date
应该可以工作。
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'))
答案 3 :(得分:0)
这里有点晚了,但我遇到了同样的问题,我找到的唯一解决方法是:
WHERE datetime > (select date '2018-09-14')