Непревзойденная дата: «NULL» с APOC.DATE.PARSE

Я использую apocдля вычисления разницы между двумя датами. Он работает, когда я поставлю значение N.IDв MATCHпредложении. Но я не могу удалить, N.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разница
2511217 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»

neo4j,neo4j-apoc,

0

Ответов: 2


0

Я думаю, что это связано с функцией агрегации 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 ;

0

Похоже, что несколько PERSONузлов размещаются одинаково ORDER, но некоторым из них не хватает charge_DATEсвойства, необходимого вашему запросу.

Neo4j, Neo4j-Rev,
Похожие вопросы
Яндекс.Метрика