在neo4j中添加时间戳

时间:2015-07-10 15:17:50

标签: neo4j cypher

我希望在neo4j中使用时间戳(长值)在范围之间找到birth_date。 在这里,我匹配用户,ID为10662。与其他用户一起,date_birth在u.date_birth

的+3和-3年之间

10800000的值是3年毫秒,但我没有得到任何结果,我确信有些问题。但无法找到问题所在。

我将不胜感激。

match (u:user {id : "10662"})-[r:has_profile]->(p:profile)  , (u2:user)-[r2:has_profile]->(p2:profile)  where  p.user_id <> p2.user_id  and u2.date_birth >= u.date_birth -toInt(10800000) and u2.date_birth <= u.date_birth + toInt(10800000)  return collect (u2.id) as id;

2 个答案:

答案 0 :(得分:2)

3年毫秒(假设每年365天)实际上是94608000000。

这对你有用吗?

MATCH (u:user {id : "10662"})-[r:has_profile]->(p:profile), (u2:user)-[r2:has_profile]->(p2:profile)
WHERE
  p.user_id <> p2.user_id AND
  abs(u2.date_birth - u.date_birth) >= 94608000000
RETURN collect(u2.id) as id;

答案 1 :(得分:0)

这也有效:

match (u:user {id : "10662"})
 , (u2:user)-[r2:has_profile]->(p2:profile)
 where
 p.user_id <> p2.user_id
 and u2.date_birth >= u.date_birth -94608000000
 and u2.date_birth <= u.date_birth +94608000000
return collect (u2.id) as ids

AS您正确指出,3年的值存在问题,以毫秒为单位。谢谢!