2017-01-17 2 views
1

Можно ли манипулировать датами в Neo4j? Например, если сегодняшняя дата составляет 1/1/2017, я могу вычесть 5 дней с текущей даты и получить 12/28/2016Можно ли манипулировать датами в Neo4j?

+0

изменить свою системную дату;) –

+1

Правильный ответ на самом деле '12/27/2016'. – cybersam

ответ

2

Вы можете использовать APOC date/time support functions.

Например:

WITH apoc.date.parse('1/1/2017', 's', 'MM/dd/yyyy') AS startTime 
RETURN apoc.date.format(startTime - 5*(60*60*24), 's', 'MM/dd/yyyy'); 

Вышеприведенные возвращает запрос:

12/27/2016 

[ОБНОВЛЕНО]

Благодаря большой комментарий от @InverseFalcon, здесь является еще более емким и, вероятно, более надежный подход. Он анализирует и форматирует даты с использованием разрешения дней (вместо секунд, как указано выше), поэтому нет необходимости конвертировать от секунд до нескольких дней (что, как правило, также подвержено ошибкам, из-за таких вещей, как високосные годы и день регулировка светового потока).

WITH apoc.date.parse('1/1/2017', 'd', 'MM/dd/yyyy') AS startDate 
RETURN apoc.date.format(startDate - 5, 'd', 'MM/dd/yyyy'); 
+2

Я только что понял, что APOC поддерживает различные разрешения на время (ms, s, m, h, d), поэтому вы должны иметь возможность выполнить это в разрешении дня для анализа и форматирования и просто вычесть 5. – InverseFalcon

Смежные вопросы