【问题标题】:How to do date comparision in gremlin?如何在 gremlin 中进行日期比较?
【发布时间】:2023-01-15 08:42:26
【问题描述】:

我有一个带有以下道具的学生节点。

{hopper=[true], updatedDate=[Fri Sep 16 09:28:40 UTC 2022], userId=[9c40uvdqkjjmcv4c7f4u3m7gpv],  firstName=[Mounika], lastName=[Mandadi], vLabel=[Student]}

我需要查询出所有 updatedDate 小于给定日期的学生节点。

我尝试过的查询:

 g.V().has("Student","updatedDate",gt("Fri Sep 17 09:28:40 UTC
 2022")).count()

这没有用。 正确的查询方式是什么? 什么索引更适合日期比较查询?

【问题讨论】:

  • updatedDate 属性是字符串吗? g.V().hasLabel("Student").limit(1).values("updatedDate").next().class 的输出是什么

标签: java gremlin tinkerpop janus


【解决方案1】:

在存储日期(时间戳)时,您确实有两个主要选项,您需要比较它们。最后我会提到第三种选择。

  1. 使用客户端编程语言中的实际 datetime 对象(如果以文本形式发送查询,则使用 Gremlin datetime 函数。
  2. 使用纪元整数(13 位或 10 位数字),因此此答案的时间为1663599168。

    如果您需要做的只是gt和lt类型操作,您也可以使用字符串,但字符串需要仔细符合 ISO 8601 标准格式;如:2022-09-19T14:57Z

    我更喜欢使用真正的 datetime 对象或纪元整数,因为它们更容易反序列化为代码,并允许进行其他操作,例如减法以查找时间戳增量。

【讨论】:

    猜你喜欢
    • 2014-01-22
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多