使用无痛脚本计算 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
我使用下面的简单表达式来获取持续时间:
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