neo4j中的history属性



我读到了基于时间的版本图,遇到了以下示例:

CREATE (s1:Shop{shop_id:1})
  -[:STATE{from:1388534400000,to:9223372036854775807}]->
  (ss1:ShopState{name:'General Store'})

我的问题是:我该如何计算这个日期?from:1388534400000,to:9223372036854775807

这两个值是时间戳,在java中是自Epoch(1/1/1970)开始以来的毫秒数。第二个值是最大的Long值,Java时间结束,还有很长的路要走。

在所有语言中都有为特定日期生成这些值的方法(注意有些是基于秒的),这个网站上有一个非常方便的列表。

如果你不使用任何特定的编程语言,只想输入查询,那么你可以使用像这样的在线日期转换器。

如果您使用timestamp()函数处理与Now相关的日期,您也可以在Cypher中计算时间戳

CREATE (s1:Shop{shop_id:1})
-[:STATE{from:timestamp(),to:9223372036854775807}]->
(ss1:ShopState{name:'General Store'})

IIUC to只是一个Long.MAX_VALUE,而from可以是通过Cypher调用timestamp()函数或通过Java API设置值为System.currentTimeMills()的属性的结果。

看看这个例子:http://console.neo4j.org/?id=43uoyt(请注意,您可以跳过设置rel.to,而在查询时使用coalesce)。

最新更新