【问题标题】:Is it possible to manipulate dates in Neo4j?是否可以在 Neo4j 中操作日期?
【发布时间】:2017-01-17 12:36:17
【问题描述】:

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

【问题讨论】:

  • 更改您的系统日期 ;)
  • 正确答案其实是12/27/2016

标签: date neo4j cypher subtraction date-difference


【解决方案1】:

您可以使用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');

【讨论】:

  • 我刚刚意识到 APOC 支持当时的各种分辨率(ms、s、m、h、d),因此您应该能够在解析和格式的当天分辨率下执行此操作,然后简单地减去5.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-25
  • 2021-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多