当前位置: 首页 > 面试题库 >

如何在ElasticSearch中计算两个日期时间之间的差异

隆钊
2023-03-14
问题内容

我正在使用ES,并且我需要一个查询,该查询返回两个datetime(mysql
timediff)之间的差,但是还没有找到ES的任何功能来做到这一点。有人可以帮助我吗?

MySQL查询

SELECT SEC_TO_TIME(
    AVG(
      TIME_TO_SEC(
        TIMEDIFF(r.acctstoptime,r.acctstarttime)
      )
    )
) as average_access

FROM radacct

谢谢!


问题答案:

最好的是脚本字段。如果您已启用动态脚本并且这些日期字段在映射中定义为日期,则上述搜索查询应该可以正常工作。

{
  "script_fields": {
    "test1": {
      "script": "doc['acctstoptime'].value - doc['acctstarttime'].value"
    }
  }
}

请注意,您将获得epoch的结果,您需要将其转换为面额。

您可以在此处阅读有关脚本化字段及其一些示例的信息。



 类似资料:
  • 问题内容: 我在-type字段中将上次登录时间存储在MySQL中。当用户登录时,我想获取上次登录时间与当前时间(我使用)之间的时差。 我该如何计算? 问题答案: 使用MySQL函数。例如,您可以使用: 在您的情况下,函数的第三个参数将是当前登录时间()。第二个参数是上次登录时间,该时间已在数据库中。

  • 问题内容: 我已经看到了许多方法,如何根据特定的日期组件(例如,天,小时,月等)来计算两个日期之间的差异 我还没有看到的是如何使用实际Date对象进行计算。就像是 我已经看到了 iOS 10中引入的类型,但是根据文档DateInterval [it]不支持反向间隔,即持续时间小于0且结束日期在时间上早于开始日期的间隔。 这样就很难计算日期,尤其是当您不知道哪个是较早的日期时。 是否有任何干净整洁的

  • 问题内容: 如何计算2010年1月1日至2010年2月3日之间的日期? 问题答案: 编辑: 请记住,对象表示确切的时刻,它们没有任何关联的时区信息。当您使用例如一个字符串转换为日期时,从配置的时区的时间转换。因此,两个对象之间的秒数 始终 是时区不可知的。 此外,本文档还指定可可的时间实现方式不包含leap秒,因此,如果您需要这种准确性,则需要滚动自己的实现方式。

  • 问题内容: 我必须找到java中两个不同日期对象之间的时间差异,如果该时间超过5秒,我必须使会话无效。 这是场景: 我有一个jsp页面,它每5秒设置一次会话 我还有另一个jsp页面,每1秒访问一次, 现在,我必须在我提到的另一个jsp中进行比较,并使会话无效, 因此,如果差异超过5秒,则会话无效。 问题答案:

  • 问题内容: 我在Scala中使用Java的类,想比较一个对象和当前时间。我知道我可以使用getTime()计算增量: 但是,这仅代表我几毫秒。有没有更简单,更好的方法来获取时间增量? 问题答案: 不幸的是,JDK API严重损坏。我建议使用Joda时间库。 Joda Time具有时间间隔的概念: 编辑:顺便说一句,乔达有两个概念:用于表示两个时刻之间的时间间隔(表示上午8点至上午10点之间的时间)

  • 问题内容: 我有两个日期格式: 现在,我需要以以下形式查找这两者之间的区别: 如何在PHP中做到这一点? 问题答案: 将此用于旧代码(PHP <5.3)。有关最新解决方案,请参见下面的jurka答案 您可以使用strtotime()将两个日期转换为Unix时间,然后计算它们之间的秒数。由此很容易计算出不同的时间段。 编辑: 显然,执行此操作的首选方法如下面的jurka所述。通常,仅当您没有PHP