是否有可能在Neo4j中操纵日期?

时间:2017-01-17 12:36:17

标签: date neo4j cypher subtraction date-difference

是否可以在Neo4j中操纵日期?例如,如果今天的日期是1/1/2017,我可以从当前日期减去5天并获得2016年12月28日

1 个答案:

答案 0 :(得分:3)

您可以使用APOC date/time support functions

例如:

WITH apoc.date.parse('1/1/2017', 's', 'MM/dd/yyyy') AS startTime
RETURN apoc.date.format(startTime - 5*(60*60*24), 's', 'MM/dd/yyyy');

以上查询返回:

12/27/2016

[增订]

感谢来自@InverseFalcon的精彩评论,这里有一个更简洁,可能更可靠的方法。它使用分辨率天(而不是秒,如上所述)解析和格式化日期,因此无需将秒数转换为天数(由于诸如闰年和日期之类的事情,这通常也容易出错)节约时间调整)。

WITH apoc.date.parse('1/1/2017', 'd', 'MM/dd/yyyy') AS startDate
RETURN apoc.date.format(startDate - 5, 'd', 'MM/dd/yyyy');