提问者:小点点

日期列中的雅典娜大于条件


我有以下查询,我试图在雅典娜上运行。

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)

这对我来说似乎很奇怪。我的查询中是否有错误,或者雅典娜无法处理日期列上的大于运算符?

谢谢!


共3个答案

匿名用户

在进行此比较之前,您需要使用强制转换来正确格式化日期。尝试以下操作:

SELECT observation_date, COUNT(*) AS count
FROM db.table_name
WHERE observation_date > CAST('2017-12-31' AS DATE)
GROUP BY observation_date

看看小提琴手:SQL小提琴

更新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