Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 如何将特定的日期格式转换为适当的数据类型,并在日期之间查询相关记录?_Datetime_Neo4j_Cypher - Fatal编程技术网

Datetime 如何将特定的日期格式转换为适当的数据类型,并在日期之间查询相关记录?

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”│ └─────────────────

我正在学习neo4j,有一个问题,我上传的给定数据集有一个奇怪的日期格式,我无法使用neo4j的bult in date函数查询,因为它是作为字符串上传的。格式如下:

╒══════════════════════════╕
│“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与节点日期时间进行比较。请检查另一个解释这一点的答案。