在 cypher 中将值转换为加载 csv 中的日期时间
converting a value to datetime in load csv in cypher
我正在尝试使用此查询将 csv 文件加载到 neo4j 中:
:auto
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS row
MERGE (news:newsID {newsID: row.id})
ON CREATE SET
news.title = row.title,
news.creation_date = row.creation_date,
news.content = row.content;
我想将 creation_date
转换为日期时间
我可以使用类似的东西来做到这一点:
WITH apoc.date.parse("2019-3-8 12:10:11", "ms", "yyyy-MM-dd HH:mm:ss") AS ms
RETURN datetime({epochmillis: ms}) as cdate
但是我不能在LOAD CSV
设置部分使用它
如何使用 apoc.date.parse
和 LOAD CSV
中的日期时间转换字段?
Neo4j 可以自动解析各种 string formats to temporal instants(如 datetime
)。您只需使用受支持的字符串格式即可。
虽然不支持您的示例字符串(“2019-3-8 12:10:11”),但可以用 "T" 替换日期和时间之间的 space 字符。
例如,试试这个:
RETURN datetime("2019-3-8T12:10:11");
因此,如果您的 creation_date
属性 值具有受支持的格式,这将有效:
:auto
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS row
MERGE (news:newsID {newsID: row.id})
ON CREATE SET
news.title = row.title,
news.creation_date = datetime(row.creation_date),
news.content = row.content;
或者,如果您想保留现有的 CSV 文件,并假设其 creation_date
字符串只有一个 space 字符,您可以这样做:
:auto
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS row
MERGE (news:newsID {newsID: row.id})
ON CREATE SET
news.title = row.title,
news.creation_date = datetime(REPLACE(row.creation_date, ' ', 'T')),
news.content = row.content;
我正在尝试使用此查询将 csv 文件加载到 neo4j 中:
:auto
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS row
MERGE (news:newsID {newsID: row.id})
ON CREATE SET
news.title = row.title,
news.creation_date = row.creation_date,
news.content = row.content;
我想将 creation_date
转换为日期时间
我可以使用类似的东西来做到这一点:
WITH apoc.date.parse("2019-3-8 12:10:11", "ms", "yyyy-MM-dd HH:mm:ss") AS ms
RETURN datetime({epochmillis: ms}) as cdate
但是我不能在LOAD CSV
设置部分使用它
如何使用 apoc.date.parse
和 LOAD CSV
中的日期时间转换字段?
Neo4j 可以自动解析各种 string formats to temporal instants(如 datetime
)。您只需使用受支持的字符串格式即可。
虽然不支持您的示例字符串(“2019-3-8 12:10:11”),但可以用 "T" 替换日期和时间之间的 space 字符。
例如,试试这个:
RETURN datetime("2019-3-8T12:10:11");
因此,如果您的 creation_date
属性 值具有受支持的格式,这将有效:
:auto
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS row
MERGE (news:newsID {newsID: row.id})
ON CREATE SET
news.title = row.title,
news.creation_date = datetime(row.creation_date),
news.content = row.content;
或者,如果您想保留现有的 CSV 文件,并假设其 creation_date
字符串只有一个 space 字符,您可以这样做:
:auto
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS row
MERGE (news:newsID {newsID: row.id})
ON CREATE SET
news.title = row.title,
news.creation_date = datetime(REPLACE(row.creation_date, ' ', 'T')),
news.content = row.content;