我希望在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;
答案 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年的值存在问题,以毫秒为单位。谢谢!