Neo4j将日期时间值作为不同节点处理

Neo4j将日期时间值作为不同节点处理,neo4j,cypher,graph-databases,Neo4j,Cypher,Graph Databases,我正在导入一个包含财务数据的CSV文件。如何对图形建模,使年、月和日值显示为三个不同的节点 Created_Date,TransactionId 2017-10-17 12:37:00.287,1 2018-03-15 02:00:48.930,2 我检查了一些文档,它们都帮助我形成了一个节点 LOAD CSV with headers FROM 'file:///filename.csv' as row WITH apoc.date.parse(row.Created_Date, &quo

我正在导入一个包含财务数据的CSV文件。如何对图形建模,使年、月和日值显示为三个不同的节点

Created_Date,TransactionId
2017-10-17 12:37:00.287,1 
2018-03-15 02:00:48.930,2
我检查了一些文档,它们都帮助我形成了一个节点

LOAD CSV with headers FROM 'file:///filename.csv' as row
WITH apoc.date.parse(row.Created_Date, "ms", "yyyy-MM-dd HH:MM:SS") AS ms
MERGE (d:Date {date: date(datetime({epochmillis: ms}))})

我要寻找的结构更多的是过渡年-月-日。如何使用datetime库实现这一点?

更好的方法是解析datetime值并将其作为属性存储到节点

LOAD CSV with headers FROM 'file:///filename.csv' as row
WITH apoc.date.fields(LEFT(row.Created_Date, 10), 'yyyy-MM-dd') AS val
MERGE (d:Date {year: val.years, month: val.months, day: val.days})

你能描述一下你的用例吗?另外,你是说你想在年和月之间建立一种关系,在月和日之间建立另一种关系吗?@cybersam我想用date过滤这些数据,这意味着必须有4个节点和4种关系:年、月、日、TransId。一个小用例是分析一段时间内事务的性质。您可以在不为日期组件创建单独节点的情况下进行过滤。您认为您的设计比每个事务节点中仅具有3个属性(用于日期组件)有什么好处?@cybersam Yeah设计应始终保持简单。我对代码进行了一些调整,以获得一个公平的结果<代码>加载带有标题的CSV,从'file:///filename.csv'as row
与apoc.date.fields(左(row.Created_date,10),'yyyy-MM-dd')作为val
合并(d:date{year:val.years,month:val.months,day:val.days})