Athena 大于日期列中的条件
Athena greater than condition in date column
我在 Athena 上尝试 运行 以下查询。
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 无法处理日期列上的大于运算符?
谢谢!
在进行比较之前,您需要使用转换来正确设置日期格式。请尝试以下操作:
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
更新 17/07/2019
为了反映评论
SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > DATE('2017-12-31')
GROUP BY observation_date
您还可以使用 date 函数,它是 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
我在 Athena 上尝试 运行 以下查询。
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 无法处理日期列上的大于运算符?
谢谢!
在进行比较之前,您需要使用转换来正确设置日期格式。请尝试以下操作:
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
更新 17/07/2019
为了反映评论
SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > DATE('2017-12-31')
GROUP BY observation_date
您还可以使用 date 函数,它是 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