【发布时间】:2022-08-09 20:35:52
【问题描述】:
select * from mongo.test.users where datetime=\'2022-07-28T05:16:42.877+00:00\';
我将 Apache Drill 与 MongoDB 数据库一起使用,我从其他字段获取数据,但我没有通过数据获取数据.. 当我将日期更改为字符串时,它会显示,但在日期格式中我没有得到任何响应
标签: sql mongodb apache-drill
select * from mongo.test.users where datetime=\'2022-07-28T05:16:42.877+00:00\';
我将 Apache Drill 与 MongoDB 数据库一起使用,我从其他字段获取数据,但我没有通过数据获取数据.. 当我将日期更改为字符串时,它会显示,但在日期格式中我没有得到任何响应
标签: sql mongodb apache-drill
我的猜测是您在这里发生了数据类型错误。我的猜测是 datetime 字段实际上被解释为日期。 Drill 不会自动将字符串转换为时间戳,因此在上面的查询中,在您的 WHERE 子句中,您实际上是将字符串与时间戳进行比较,因此得到零结果。
要验证这一点,请尝试以下查询:
SELECT typeof(`datetime`) FROM from mongo.test.users LIMIT 1
如果结果以某种时间戳的形式返回,那么要解决此问题,您只需将字符串转换为时间戳,如下所示:
SELECT ...
FROM ...
WHERE `datetime` = CAST ('<date>' AS TIMESTAMP)
在这里查看有关数据类型转换的 Drill 文档:https://drill.apache.org/docs/data-type-conversion/。
【讨论】: