Datetime 如何将特定的日期格式转换为适当的数据类型,并在日期之间查询相关记录?
我正在学习neo4j,有一个问题,我上传的给定数据集有一个奇怪的日期格式,我无法使用neo4j的bult in date函数查询,因为它是作为字符串上传的。格式如下:Datetime 如何将特定的日期格式转换为适当的数据类型,并在日期之间查询相关记录?,datetime,neo4j,cypher,Datetime,Neo4j,Cypher,我正在学习neo4j,有一个问题,我上传的给定数据集有一个奇怪的日期格式,我无法使用neo4j的bult in date函数查询,因为它是作为字符串上传的。格式如下: ╒══════════════════════════╕ │“t.日期”│ ╞══════════════════════════╡ │“2019年2月18日星期一12:18:57”│ ├──────────────────────────┤ │“2019年2月18日星期一12:18:57”│ └─────────────────
╒══════════════════════════╕
│“t.日期”│
╞══════════════════════════╡
│“2019年2月18日星期一12:18:57”│
├──────────────────────────┤
│“2019年2月18日星期一12:18:57”│
└──────────────────────────┘代码>
我已经创建了一个节点,其中包含date
属性,并以上述格式存储日期
如何更改此设置,以便查询关联节点以返回特定日期之间的结果,例如:
匹配(t:Text)
其中t.date=‘2019年2月18日星期一12:18:57’
返回t.description代码>
我需要能够查询特定日期之间的文本
,例如2019年2月18日星期一12:18:57
和2019年2月19日星期一12:18:57
谢谢大家! 有两种方法:
将现有的date属性更改为Neo4j“DateTime”
。可以很容易地查询到。(推荐)
保持date属性不变,并在每次要查询时使用apoc比较日期。(不推荐)
您可以使用APOC Plugin中的函数通过指定
您可以使用以下查询将现有日期更改为Neo4j'DateTime'
:(对于解决方案1)
参考
注意:在运行上述查询之前安装。有两种方法:
将现有的date属性更改为Neo4j“DateTime”
。可以很容易地查询到。(推荐)
保持date属性不变,并在每次要查询时使用apoc比较日期。(不推荐)
您可以使用APOC Plugin中的函数通过指定
您可以使用以下查询将现有日期更改为Neo4j'DateTime'
:(对于解决方案1)
参考
注意:在运行上述查询之前安装。一旦将日期字符串转换为日期时间格式,当日期介于2月18日和19日12:18:57之间时,可以执行以下查询以获取文本描述。注意中间的字母“T”。它意味着时间
MATCH (t:Text)
WHERE t.date > datetime('2019-02-18T12:18:57')
AND t.date < datetime('2019-02-19T12:18:57')
RETURN t.description;
匹配(t:Text)
其中t.date>datetime('2019-02-18T12:18:57')
日期<日期时间('2019-02-19T12:18:57')
返回t.description;
参考:
将日期字符串转换为日期时间格式后,当日期介于2月18日和19日12:18:57之间时,可以执行以下查询以获取文本描述。注意中间的字母“T”。它意味着时间
MATCH (t:Text)
WHERE t.date > datetime('2019-02-18T12:18:57')
AND t.date < datetime('2019-02-19T12:18:57')
RETURN t.description;
匹配(t:Text)
其中t.date>datetime('2019-02-18T12:18:57')
日期<日期时间('2019-02-19T12:18:57')
返回t.description;
参考:
谢谢Raj,当我使用以下查询设置MATCH(node:Text)set node.date=datetime(node.date)代码>它不起作用,因为它查看了三个字母Mon
中描述的日期,并表示字符串不能解析为完全有意义的日期时间。您是否可以共享第一个建议解决方案的查询?我共享的查询是针对我的第一个解决方案的。按原样使用它,它解析您的日期。不要从我的查询中跳过apoc解析,这就是进行转换的原因。转换后,使用Neo4j datetime与节点日期时间进行比较。请检查另一个解释这一点的答案。谢谢Raj,当我使用以下查询设置MATCH(node:Text)set node.date=datetime(node.date)代码>它不起作用,因为它查看了三个字母Mon
中描述的日期,并表示字符串不能解析为完全有意义的日期时间。您是否可以共享第一个建议解决方案的查询?我共享的查询是针对我的第一个解决方案的。按原样使用它,它解析您的日期。不要从我的查询中跳过apoc解析,这就是进行转换的原因。转换后,使用Neo4j datetime与节点日期时间进行比较。请检查另一个解释这一点的答案。