在neo4j,我如何从出生日期开始计算年龄



我从neo4j开始,想知道如何以年为单位计算年龄。我有下面的节点

(p1:Person{id:1,birthdate:"1989-10-03",name:"Person1"})

试过这种

with p.birthdate as bd, date() as d return d - bd

您可以使用dateduration类型,例如:

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/

最新更新