Neo4j Cypher Установка строки чисел на дату - PullRequest
1 голос
/ 09 ноября 2019

У меня есть набор данных, в котором даты установлены в виде строки чисел. В запросе я могу преобразовать строку в дату, но получаю сообщение об ошибке, когда пытаюсь установить для свойства новую дату:

В настоящее время: a.saleDate = 201805 (строка) Я хочу: a.saleDate = 2018-05 (дата)

Я могу запросить продажу в качестве даты с:

MATCH (a:sale)
WITH [tointeger(substring(a.saleDate, 0, 4)), 
tointeger(substring(a.saleDate, 4))] AS dateComponents
RETURN date({year: dateComponents[0], month: dateComponents[1]}) AS date

Но когда я пытаюсь установить новую дату с помощью:

MATCH (a:sale)
WITH [tointeger(substring(a.saleDate, 0, 4)), 
tointeger(substring(a.saleDate, 4))] AS dateComponents
SET date({year: dateComponents[0], month: dateComponents[1]}) = a.saleDate
RETURN a

я получаю сообщение об ошибке:

Neo.ClientError.Statement.SyntaxError: Неверный ввод '=': ожидаемый пробел, комментарий или '.'

Любая помощь будет благодарна нуби Сайперу.

1 Ответ

1 голос
/ 09 ноября 2019

Я вижу две проблемы:

  1. задание задом наперед;a.saleDate должно быть слева
  2. Вы не несете a в своем WITH калесе, но вы пытаетесь использовать его позже

Попробуйте это ...

MATCH (a:sale) 
WITH a, [tointeger(substring(a.saleDate, 0, 4)), tointeger(substring(a.saleDate, 4))] AS dateComponents 
SET a.saleDate = date({year: dateComponents[0], month: dateComponents[1]}) 
RETURN a

Это все сказано, почему не это ...

MATCH (a:sale) 
SET a.saleDate = date(a.saleDate) 
RETURN a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...