使用无痛脚本计算 Elastic 6.7 中的两个日期持续时间

Calculate two date duration in Elastic 6.7 using painless script

我使用下面的简单表达式来获取持续时间:

doc['endTime'].date.millisOfDay - doc['startTime'].date.millisOfDay

但是当 endTime 超过 startTime 日时问题就开始了。

Example: If startTime is 23:50 and endTime for the same is 00:12, we crossed by midnight, which changes the date as well.

这样一来,我得到的持续时间绝对错误,除了两个时间都在同一天结果符合预期的所有情况。

请教我具体怎么做。

您应该简单地减去自纪元以来的绝对毫秒值(而不是自一天开始以来的毫秒数):

doc['endTime'].date.millis - doc['startTime'].date.millis