我从neo4j开始,想知道如何以年为单位计算年龄。我有下面的节点
(p1:Person{id:1,birthdate:"1989-10-03",name:"Person1"})
试过这种
with p.birthdate as bd, date() as d return d - bd
您可以使用date
和duration
类型,例如:
MATCH (p:Person {name: "Person1"})
WITH duration.between(date(p.birthdate), date()) as d
RETURN d, d.years, d.months, d.days
如果你喜欢APOC函数(Cypher上的Awesome Procedures(,那么下面的脚本会起作用:
MATCH (p:Person {name: "Person1"})
RETURN ( apoc.date.convert(timestamp(), 'ms', 'd') -
apoc.date.parse(p.birthdate, 'd', 'YYY-MM-DD')) / 365 as yearsAlive
结果:
╒════════════╕
│"yearsAlive"│
╞════════════╡
│33 │
└────────────┘
参考:
1。https://neo4j.com/labs/apoc/#:~:text=APOC%20is%20an%20add%2Don,所有%20APOC%20函数%20和%20过程
2。https://neo4j.com/labs/apoc/4.0/overview/apoc.date/