我有一个带人标签的节点,我也在存储他们的出生日期。例如:
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");
也许?
希望这会有所帮助。
问候,汤姆