为什么bolt协议返回错误的日期时间

时间:2017-04-23 09:56:00

标签: neo4j cypher

我正在使用一系列纪元日期来查询neo4j

MATCH (event:Event)
WHERE 1420099200000 <= event.datetime <= 1494831600000 
RETURN event.start_date,event.datetime_mu

这个neo4j broswer返回正确的日期时间

event.start_date    event.datetime_mu
2017-03-30T00:00:00 1490832000000
2017-02-18T00:00:00 1487376000000
2016-12-17T00:00:00 1481932800000
2017-02-14T00:00:00 1487030400000
2017-03-16T00:00:00 1489622400000

另一方面,bolt将数组event.datetime_mu返回到具有高和低属性的对象数组中。

{
      "keys": [
        "event.start_date",
        "event.datetime_mu"
      ],
      "length": 2,
      "_fields": [
        "2017-02-18T00:00:00",
        {
          "low": 1317315584,
          "high": 346
        }
      ],
      "_fieldLookup": {
        "event.start_date": 0,
        "event.datetime_mu": 1
      }
    }

我不确定如何从bolt对象返回或计算正确的纪元日期时间。 low通常具有最接近的绝对值,但有时我得到负整数。 range()运算符也是如此。

不确定这是否是我遗漏的东西,或者如何从对象计算正确的日期时间。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

为了传达64位数值,必须分解为低值和高值。

Javascript不支持64位长整数类型,因此驱动程序提供了一些support functions and advice to assist