Есть ли простой способ для преобразования ISO Дата в формате дд / мм / гггг в шифр?я попытался с помощью "apoc.date.fromISO8601", но выдает ошибку - PullRequest
0 голосов
/ 03 апреля 2019

Я новичок в neo4j.Я установил плагин apoc и изменил файл neo4j.conf - метод apoc.date.fromISO8601 появляется при вызове apoc.help("date"), но когда я пытаюсь его использовать - он выдает ошибку

"Neo.ClientError.Procedure.ProcedureNotFound: Нет процедуры с именем apoc.date.format, зарегистрированной для этого экземпляра базы данных. Убедитесь, что вы правильно написали имя процедуры и что процедура развернута должным образом."

Если это не работает, есть ли более простой способ конвертировать даты ISO18601 в формат дд / мм / гггг?

1 Ответ

1 голос
/ 03 апреля 2019

Начиная с neo4j 3.1, apoc.date.fromISO8601 - это функция , а не процедура . Это означает, что вы можете использовать его как любую другую функцию (и не использовать предложение CALL).

Например, этот простой запрос:

RETURN apoc.date.fromISO8601('2019-04-03T00:00:00.000Z');

возвращается:

╒═══════════════════════════════════════════════════╕
│"apoc.date.fromISO8601('2019-04-03T00:00:00.000Z')"│
╞═══════════════════════════════════════════════════╡
│1554249600000                                      │
└───────────────────────────────────────────────────┘

Аналогично, apoc.date.format теперь также является функцией. Вот пример того, как преобразовать дату и время ISO8601 в dd/mm/yyyy формат:

RETURN apoc.date.format(
  apoc.date.fromISO8601('2019-04-03T00:00:00.000Z'),
  "ms",
  "dd/MM/yyyy")

, который возвращает:

╒══════════════════════════════════════════════════════════════════════╕
│"apoc.date.format(apoc.date.fromISO8601('2019-04-03T00:00:00.000Z'), "│
│ms", "dd/MM/yyyy")"                                                   │
╞══════════════════════════════════════════════════════════════════════╡
│"03/04/2019"                                                          │
└──────────────────────────────────────────────────────────────────────┘
...