amazon-web-services - 在 AWS Athena 中使用小于运算符不起作用
问题描述
我在 AWS Athena 中遇到了过滤时间戳的问题。我正在使用 Athena 在 S3 中查询镶木地板文件。我运行了一个爬虫将文件的架构包含到 AWSDataCatalogue 中。除非我尝试使用小于运算符,否则一切正常,我无法解释为什么会发生这种情况。我尝试使用 >= 和 <= 过滤特定的日期范围。我已经尝试了下面的示例,并且能够确定小于运算符是问题的原因。这是一个示例,我的目标是过滤特定日期:
select col_1, col_2, ts_col
from "database"."table"
where ts_col >= date('2021-04-26') and ts_col <= date('2021-04-26');
这是我尝试运行的查询,但它返回“零记录”和“数据扫描:0.0 KB”。
查询
select col_1, col_2, ts_col
from "database"."table"
where ts_col <= date('2021-04-26');
返回所需的输出(2021-04-25 之后的所有数据)。
但如果我试试这个:
select col_1, col_2, ts_col
from "database"."table"
where ts_col <= date('2021-04-26');
即使数据库中有此日期之前的记录,查询也不返回任何内容(“零记录”)。看起来在查询执行期间甚至没有扫描数据(“数据扫描:0.0 KB”)。
我已经为 daterange 查询尝试了另一种语法
select col_1, col_2, ts_col
from "database"."table"
where ts_col between date('2021-04-26') and date('2021-04-26');
也
select col_1, col_2, ts_col
from "database"."table"
where ts_col between timestamp '2021-04-26 00:00:00.000'
and timestamp '2021-04-26 23:59:99.999';
但没有任何查询返回“零记录”以外的任何内容,但“扫描数据:0.0 KB”。
我检查了ts_col
AWSDataCatalogue 中的数据类型,它被注册为timestamp
.
有没有人遇到过这个问题,还是我犯了一个明显的错误?
解决方案
推荐阅读
- javascript - 如何将变量从客户端传递到服务器端以设置 webchartcontol 宽度
- java - Spring Hibernate mysql:字段'id'没有默认值
- javascript - 如何将月份值从一个 Date 对象复制到另一个对象?
- php - 如何在两个或多个表中获取同一列?
- swift - 从 Swift 5 类型转换
相当于 Swift 3 - javascript - 动画推动 div 的宽度更小
- css - 在单个文件组件中导入全局常量
- debugging - 如何调试 Firefox 扩展,它似乎无声无息地崩溃
- android - 已编译的 apk 正在尝试到达 metor 服务器反应本机
- php - 以 n 为单位分离和写入数据集的功能不起作用。尝试了 array_slice 和 for-loop