我正在阅读基于时间的版本化图表,并且遇到了以下示例:
CREATE (s1:Shop{shop_id:1})
-[:STATE{from:1388534400000,to:9223372036854775807}]->
(ss1:ShopState{name:'General Store'})
我的问题:我该如何计算这个日期? from:1388534400000,to:9223372036854775807
答案 0 :(得分:2)
IIUC to
只是Long.MAX_VALUE
,而from
可以是通过Cypher调用timestamp()
函数或将值设置为{{1通过Java API。
请看一下示例:http://console.neo4j.org/?id=43uoyt(请注意,您可以跳过设置System.currentTimeMills()
并在查询时使用rel.to
。
答案 1 :(得分:2)
这两个值是时间戳,在java中是自Epoch(1/1/1970)开始以来的毫秒数。第二个值是最大的Long值,即Java时间的结束,距离很远。
在所有语言中都有一些方法可以为特定日期生成这些值(请注意,有些日期将基于秒),this site上有一个非常方便的列表。
如果您没有使用任何特定的编程语言,只想输入查询,那么您可以使用this one之类的在线日期转换器。
如果您使用Now
函数以某种方式处理与timestamp()
相关的日期,您还可以计算Cypher中的时间戳:
CREATE (s1:Shop{shop_id:1})
-[:STATE{from:timestamp(),to:9223372036854775807}]->
(ss1:ShopState{name:'General Store'})