我要在雅典娜上运行以下查询。
SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > '2017-12-31'
GROUP BY observation_date
但是会产生此错误:
SYNTAX_ERROR: line 3:24: '>' cannot be applied to date, varchar(10)
这对我来说似乎很奇怪。我的查询中是否有错误,或者Athena无法处理大于日期列上的运算符?
谢谢!
答案 0 :(得分:10)
在进行此比较之前,您需要使用强制转换来正确格式化日期。请尝试以下操作:
SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > CAST('2017-12-31' AS DATE)
GROUP BY observation_date
在Fiddler中进行检查:SQL Fidle
答案 1 :(得分:7)
您还可以使用date函数,该函数是CAST(x AS date)
的方便别名:
SELECT *
FROM date_data
WHERE trading_date >= DATE('2018-07-06');
答案 2 :(得分:0)
select * from my_schema.my_table_name where date_column = cast('2017-03-29' as DATE) limit 5