Neo4j:如何在neo4j 3.x版本中计算特定日期和今天日期之间的年差?



我有一个带人标签的节点,我也在存储他们的出生日期。例如:

Person
{
  name: Tim
  D.O.B: 01/23/1990
}

现在,我需要计算他的年龄截至当前日期和时间(即27岁或27岁,10个月,18天)。所以,有人可以让我知道我该如何执行?

P.S。:我尝试了以下内容,但似乎在这里缺少一些东西:

WITH apoc.date.parse('01/23/1990', 'y', 'MM/dd/yyyy') AS startDate,
     apoc.date.format(timestamp(),'y','MM/dd/yyyy') as endDate,
     apoc.date.parse(endDate,'y','MM/dd/yyyy') as ed
 RETURN ed - 4

apoc日期格式/parse/add/convert函数支持的单位为: ms,s,m,h,d and their long forms。要与几个月一起工作,您需要使用特定的日历系统,并且没有共同的月份单位进行转换或增加,因为不同的月份由不同的日子组成(然后是2月的Leap日)。<<<<<<<<<</p>

多年来,您将不得不使用日常单位并在365之前使用部门。

这是一个查询,可以使您在几年和几天内年龄。

WITH apoc.date.parse('01/23/1990', 'd', 'MM/DD/yyyy') as birth, apoc.date.convert(timestamp(), 'ms', 'd') as now
WITH now - birth as daysAlive
RETURN daysAlive / 365 as yearsAlive, daysAlive % 365 as daysExtra

如果您想进入几个月,最好使用MM/DD/YYYY代表的月/年领域工作,并对此进行一些数学。我会看到我们可以在APOC中支持它。

有些喜欢

WITH apoc.date.parse('01/23/1990', 'y', 'MM/dd/yyyy') AS startDate
RETURN apoc.date.convert(timestamp() - startDate,"ms","d");

也许?

希望这会有所帮助。

问候,汤姆

最新更新