I have the following query that I am trying to run on Athena.
SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > '2017-12-31'
GROUP BY observation_dateHowever it is producing this error:
SYNTAX_ERROR: line 3:24: '>' cannot be applied to date, varchar(10)This seems odd to me. Is there an error in my query or is Athena not able to handle greater than operators on date columns?
Thanks!
3 Answers
You need to use a cast to format the date correctly before making this comparison. Try the following:
SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > CAST('2017-12-31' AS DATE)
GROUP BY observation_dateCheck it out in Fiddler: SQL Fidle
UPDATE 17/07/2019
In order to reflect comments
SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > DATE('2017-12-31')
GROUP BY observation_date 5 You can also use the date function which is a convenient alias for CAST(x AS date):
SELECT *
FROM date_data
WHERE trading_date >= DATE('2018-07-06'); select * from my_schema.my_table_name where date_column = cast('2017-03-29' as DATE) limit 5