Хранить дату в neo4j - PullRequest
       5

Хранить дату в neo4j

0 голосов
/ 17 декабря 2018

Указанный формат даты в CSV: «(Пт) 09 января 2018 (32)».Это должно подать в базу данных в виде столбца даты, чтобы разрешить порядок по дате.Как преобразовать вышеуказанный формат в формат даты Neo4j во время вставки?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Если предположить, что подстрока даты всегда начинается со смещения 6 во входной строке, будет возвращено смещение даты от 01 Jan 1970, которое достаточно для сравнения дат:

WITH '(Fri) 09 Jan 2018 (32)' as s
RETURN apoc.date.parse(SUBSTRING(s, 6, 11), 'd', "dd MMM yyyy") as date;
0 голосов
/ 17 декабря 2018

Решение

WITH '(Fri) 09 Jan 2018 (32)' as inputString
WITH split(inputString, ' ') as parts
WITH parts[1] + ' ' + parts[2] + ' ' + parts[3] AS concatDate
RETURN apoc.date.parse(concatDate, 's',"dd MMM yyyy") as date;

Объяснение:

  • строка 1: определяет дату для целей тестирования
  • строка 2: разбиваетуказанная дата разбивается на части в каждой пробеле
  • строка 3: объединяет день, месяц и год
  • строка 4: анализ даты построения строки 3 и преобразование ее в дату Neo4j

Результат

╒══════════╕
│"date"    │
╞══════════╡
│1515456000│
└──────────┘

Альтернативное решение

WITH '(Fri) 09 Jan 2018 (32)' as inputString
WITH split(inputString, ' ') as parts
WITH reduce(s = "", x IN parts[1..4] | s + x) AS concatDate
RETURN apoc.date.parse(concatDate, 's',"ddMMMyyyy") as date;
...