Neo4j 不可剥夺的日期:“;空";使用APOC.DATE.PARSE
我正在使用apoc计算两个日期之间的差异。当我在Neo4j 不可剥夺的日期:“;空";使用APOC.DATE.PARSE,neo4j,neo4j-apoc,Neo4j,Neo4j Apoc,我正在使用apoc计算两个日期之间的差异。当我在MATCH子句中为N.ID提供值时,它工作。但是当我删除N.ID时,它失败了,因为我正在尝试为一组ID而不是单个ID处理代码 MATCH (N:PERSON)-[M:PLACED]-(K:ORDER) WHERE K.ORDER_CODE="A23" and N.ID=2511217 WITH N ,max(apoc.date.parse(SUBSTRING(M.ORDER_DATE,0,8),'d',"yyyymmdd")) AS initi
MATCH
子句中为N.ID
提供值时,它工作。但是当我删除N.ID
时,它失败了,因为我正在尝试为一组ID而不是单个ID处理代码
MATCH (N:PERSON)-[M:PLACED]-(K:ORDER) WHERE K.ORDER_CODE="A23" and N.ID=2511217
WITH N ,max(apoc.date.parse(SUBSTRING(M.ORDER_DATE,0,8),'d',"yyyymmdd")) AS initialTime,
apoc.date.parse(SUBSTRING(N.charge_DATE,0,8),'d',"yyyymmdd") AS finalTime
RETURN N.ID, finalTime - initialTime as difference ;
N.ID
差异251217 4 但是,当删除
N.ID
时,我得到:
MATCH (N:PERSON)-[M:PLACED]-(K:ORDER) WHERE K.ORDER_CODE="A23"
WITH N ,max(apoc.date.parse(SUBSTRING(M.ORDER_DATE,0,8),'d',"yyyymmdd")) AS initialTime,
apoc.date.parse(SUBSTRING(N.charge_DATE,0,8),'d',"yyyymmdd") AS finalTime
RETURN N.ID, finalTime - initialTime as difference ;
Neo.ClientError.Procedure.ProcedureCallFailed:未能调用函数apoc.date.parse
:原因:java.text.ParseException:不可解析的日期:“NULL”
我认为这是由于聚合函数
max
。
您能否尝试使用此查询:
MATCH (N:PERSON)-[M:PLACED]-(K:ORDER) WHERE K.ORDER_CODE="A23"
WITH
N ,
apoc.date.parse(SUBSTRING(M.ORDER_DATE,0,8),'d',"yyyymmdd") AS initialTime,
apoc.date.parse(SUBSTRING(N.charge_DATE,0,8),'d',"yyyymmdd") AS finalTime
WITH N, max(initialTime) AS initialTime, finalTime
RETURN N.ID, finalTime - initialTime as difference ;
看起来有多个
PERSON
节点下了相同的订单
,但其中一些节点缺少查询所需的charge\u DATE
属性。我仍然会遇到相同的错误-有或没有MAX。当我使用特定ID限定“Where”子句时,它会工作,但在删除时失败。