Neo4j 从记录列表中创建节点时,如何传递datetime属性?

Neo4j 从记录列表中创建节点时,如何传递datetime属性?,neo4j,cypher,Neo4j,Cypher,我正在评估生产软件中使用的Neo4j和Cypher,我正在从SQL server迁移数据,但为此,我没有使用LOADCSV Cypher命令,因为我需要对创建的节点和关系进行更多控制。 我现在所做的与此类似: { “道具”:[{ “姓名”:“安德烈斯”, “职位”:“开发者”, “日期”:“2018-01-01” }, { “姓名”:“迈克尔”, “职位”:“开发商” } ] } 将$props作为地图展开 创建(n:个人) 集合n=映射 我试图实现的是将date属性设置为正确的数据类型(dat

我正在评估生产软件中使用的Neo4j和Cypher,我正在从SQL server迁移数据,但为此,我没有使用LOADCSV Cypher命令,因为我需要对创建的节点和关系进行更多控制。 我现在所做的与此类似:

{ “道具”:[{ “姓名”:“安德烈斯”, “职位”:“开发者”, “日期”:“2018-01-01” }, { “姓名”:“迈克尔”, “职位”:“开发商” } ] }

将$props作为地图展开 创建(n:个人) 集合n=映射

我试图实现的是将date属性设置为正确的数据类型(datetime)。有没有办法告诉cypher将该字段解析为日期时间

注意:我已经尝试过“SET n.Date=datetime(map.Date)”方法,但这也会将属性日期添加到第二条记录中,我不需要这样做


顺便说一句,我真的很喜欢与Neo4j一起工作;)

您可以使用这样一个事实,即如果赋值为NULL,则不会创建或删除属性:

WITH [ { name: "Andres",  position: "Developer", date: "2018-01-01" }, 
       { name: "Michael", position: "Developer" } ] AS props
UNWIND props AS map CREATE (n:Person) 
SET n = map, 
    n.date = CASE WHEN n.date IS NULL THEN NULL ELSE datetime(n.date) END
RETURN n