首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在cypher中将负载csv中的值转换为日期时间

在cypher中将负载csv中的值转换为日期时间
EN

Stack Overflow用户
提问于 2020-05-28 23:02:44
回答 1查看 815关注 0票数 1

我试图使用以下查询将csv文件加载到neo4j中:

代码语言:javascript
复制
: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转换成日期时间

我可以这样做,比如:

代码语言:javascript
复制
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.parseLOAD CSV中的日期时间转换字段?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-29 02:55:50

Neo4j可以自动解析各种各样的字符串格式到时间瞬间 (如datetime)。您只需使用支持的字符串格式即可。

虽然您的示例字符串("2019-3-8 12:10:11")不受支持,但将日期和时间之间的空格字符替换为"T“将有效。

例如,尝试如下:

代码语言:javascript
复制
RETURN datetime("2019-3-8T12:10:11");

因此,如果您的creation_date属性值具有受支持的格式,这将有效:

代码语言:javascript
复制
: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字符串只有一个空格字符,则可以这样做:

代码语言:javascript
复制
: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;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62075945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档