以下选择不起作用:
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 实例上确认此行为。
您可以尝试使用最新版本吗?否则,请发布您的架构和一些示例数据以重现?