带有时间戳的AWS Athena SQL查询错误

带有时间戳的AWS Athena SQL查询错误,sql,timestamp,amazon-athena,presto,Sql,Timestamp,Amazon Athena,Presto,我在AWS Athena中有一个表,其列名为“servertime”,数据类型为timestamp。我运行这样的查询 选择* 从表\u名称 其中服务器时间介于“2018-04-01 00:00:00”和“2018-04-05 23:59:59”之间; 它给了我这个错误: 您的查询出现以下错误: 语法错误:第1:41行:“=”不能应用于时间戳,varchar(19) 我如何在雅典娜解决这个问题?从该表中获取数据非常重要。您看到的问题与您的中间条件有关。如果您将时间戳表示为varchar,那么雅典

我在AWS Athena中有一个表,其列名为“servertime”,数据类型为timestamp。我运行这样的查询

选择*
从表\u名称
其中服务器时间介于“2018-04-01 00:00:00”和“2018-04-05 23:59:59”之间;
它给了我这个错误: 您的查询出现以下错误: 语法错误:第1:41行:“=”不能应用于时间戳,varchar(19)


我如何在雅典娜解决这个问题?从该表中获取数据非常重要。

您看到的问题与您的中间条件有关。如果您将时间戳表示为varchar,那么雅典娜不会将其转换为时间戳

为此,您需要传递一个显式类型转换

select * from table_name 
where servertime 
   between TIMESTAMP '2018-04-01 00:00:00' 
   and TIMESTAMP '2018-04-05 23:59:59';
还要注意的是,在Presto(以及雅典娜)中,时间戳的精度为毫秒,因此您可能希望使用
时间戳'2018-04-05 23:59:59.999'
作为上限(或者只是普通的
>=某一天和下一天
)。