1

以下选择不起作用:

 SELECT * FROM "myschema"."timetable" WHERE "start_time" in (1519705800000, 1519710840000, 1519705800000, 1519718400000)

Start_time 是一个时间戳列。板条箱响应:

Error!

SQLActionException[UnhandledServerException: java.lang.NullPointerException]

WHERE IN 不能处理时间戳吗?有替代方案吗?板条箱版本是 2.1.6。

4

2 回答 2

0

我无法在最新版本 (2.3.2) 的 CrateDB 实例上确认此行为。

可以试试最新版本吗?否则发布您的架构和一些示例数据以重现?

于 2018-01-29T21:14:40.797 回答
0

此错误已在 CrateDB 2.1.9 中修复,请参阅https://crate.io/docs/crate/reference/en/2.1/release_notes/2.1.9.html#fixes。请考虑升级到 2.1.9,因为它只是一个补丁版本,应该不会影响您的开发状态。

也就是说,有一种解决方法。您必须将时间戳列转换为长,它会正常工作:

SELECT * FROM "myschema"."timetable" WHERE "start_time"::long in (1519705800000, 1519710840000, 1519705800000, 1519718400000);

这是可行的,因为时间戳在内部表示为 long,因此您不会失去任何精度。

于 2018-01-30T17:02:54.780 回答