Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4J Cypher-从时间戳中减去持续时间_Neo4j_Cypher - Fatal编程技术网

Neo4J Cypher-从时间戳中减去持续时间

Neo4J Cypher-从时间戳中减去持续时间,neo4j,cypher,Neo4j,Cypher,我正在尝试创建一个动态查询,它将从“今天”(提交时)和向后许多天获取结果 为了这个例子,让我们假设我想要从今天开始的最后14天的数据 使用timestamp() 我尝试了以下代码 match(u:data) WHERE u.first_submitted > timestamp()}-duration('P14D') AND u.first_submitted < timestamp() RETURN u.first_submitted LIMIT 10 我尝试了几种不同的编码方法

我正在尝试创建一个动态查询,它将从“今天”(提交时)和向后许多天获取结果

为了这个例子,让我们假设我想要从今天开始的最后14天的数据

使用
timestamp()

我尝试了以下代码

match(u:data) WHERE u.first_submitted > timestamp()}-duration('P14D') AND u.first_submitted < timestamp() RETURN u.first_submitted LIMIT 10
我尝试了几种不同的编码方法,但我发现自己对语法和Neo4J的文档非常困惑

或者,如果你能想出一个更好的方法来做到这一点,这是不是资源太重,请让我知道

提前谢谢

另外,我不确定我一直看到的“data.apoch”内容是什么,但当我尝试运行这些命令时,我会收到错误,因此如果我可以避免使用这个库,请告诉我。

是的,时间值和函数非常复杂,文档分散且密集

该函数返回一个整数。但是a(可以使用函数构造)只能从a中减去(例如,可以使用函数构造的
DateTime

因此,为简单起见,
first_submitted
属性值应该类似于
DateTime
(表示日期和时间),而不是整数。例如:

CREATE (:data {id: 123, first_submitted: datetime()})
假设这是真的,您的查询可能如下所示:

WITH datetime()-duration('P14D') AS threshold
MATCH (u:data)
WHERE u.first_submitted > threshold
RETURN u.first_submitted LIMIT 10
注:无需测试存储的日期时间是否早于当前日期时间,因为所有
首次提交的
值可能都是过去的


此外,您可能希望创建一个on
:data(首次提交)
以提高性能。

谢谢@cybersam,您提到“为了简单起见,请使用
日期时间
值”,但您对这一更改在服务器性能方面的差异有何看法?谢谢。如果您存储了
DateTime
,那么您的查询就可以避免将历元时间转换为
DateTime
s。这会更有效,并简化您的逻辑。
WITH datetime()-duration('P14D') AS threshold
MATCH (u:data)
WHERE u.first_submitted > threshold
RETURN u.first_submitted LIMIT 10