我有个人标签的节点,我也在那里存储他们的出生日期。例如:
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
答案 0 :(得分:3)
APOC日期格式/解析/添加/转换功能支持的单位是:ms,s,m,h,d and their long forms
。要使用几个月,您需要使用特定的日历系统,并且没有共同的月份单位时间来进行转换或添加,因为不同的月份由不同的日期组成(然后是闰日) 2月)。
多年来,你必须选择日间单位并使用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中看到我们能够支持的内容。
答案 1 :(得分:0)
有些喜欢
WITH apoc.date.parse('01/23/1990', 'y', 'MM/dd/yyyy') AS startDate
RETURN apoc.date.convert(timestamp() - startDate,"ms","d");
或许?
希望这有帮助。
此致 汤姆