CRATE DB:其中 in 时间戳数据导致 NullPointerException



以下选择不起作用:

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

Start_time 是一个时间戳列。Crate的回应是:

Error!
SQLActionException[UnhandledServerException: java.lang.NullPointerException]

哪里在时间戳上不起作用?有没有其他选择? 板条箱版本是 2.1.6。

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

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

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

这之所以有效,是因为时间戳在内部表示为长整型,因此您不会丢失任何精度。

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

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

相关内容

  • 没有找到相关文章

最新更新