type seleccionar manejo insertar formulario fechas fecha ejemplo actual date neo4j date-range

date - seleccionar - Cómo manejar las fechas en neo4j



manejo de fechas en sql server (3)

La forma más común de tratar las fechas en Neo4j es almacenarlas como una representación de cadena o como milis desde época (también conocida como msec, aprobada desde el 1 de enero de 1970).

El primer enfoque hace que el gráfico sea más fácil de leer, el último le permite hacer cálculos, por ejemplo, calcular deltas.

En su caso, almacenaría dos propiedades llamadas validFrom y validTo en las relaciones. Sus consultas deben asegurarse de estar buscando el intervalo de tiempo correcto.

Por ejemplo, para encontrar el / los rey (s) a cargo de Francia desde el 1 de enero de 1220 hasta el 31 de diciembre de 1221, haga lo siguiente:

MATCH (c:Country{name:''France''})-[r:HAS_KING]->(king) WHERE r.validFrom >= -23667123600000 and r.validTo <=-23604051600000 RETURN king, r.validFrom, r.validTo

apéndice

Desde Neo4j 3.0 existe la biblioteca APOC que proporciona un par de funciones para convertir las marcas de tiempo a / de cadenas de fecha legibles por el ser humano .

Soy un historiador de la historia medieval y estoy intentando codificar las redes entre reyes, duques, papas, etc. durante un período de aproximadamente 50 años (desde 1220 a 1270) en la Alemania medieval. Como no soy especialista en bases de datos de gráficos, estoy buscando la posibilidad de manejar fechas y fechas.

¿Hay alguna posibilidad de manejar un rango de fechas hasta un borde para que los bordes, que representan una relación, desaparezcan después de, por ejemplo, 3 años?

¿Hay alguna posibilidad de solicitar relaciones que tengan su etiqueta de fecha en un rango de fechas?


Otra opción para fechas que mantiene la cantidad de nodos / propiedades que crea bastante bajas es una lista vinculada años (primer año de interés - último año), uno de meses (1-12) y una de fechas en un mes (1- 31). Luego, cada "evento" en su gráfico se puede conectar a un año, mes y día. De esta forma, no es necesario crear un nuevo nodo para cada nueva combinación de un mes, mes y día. Solo tiene un único conjunto de meses, uno de días y un año. Escalo los números para hacerlos más fáciles de manipular así

Los años son aaaa * 10000

Los meses son mm * 100

La fecha es dd

así que si ejecuta una consulta como

match (event)-[:happened]->(t:time) with event,sum(t.num) as date return event.name,date order by date

Obtendrá una lista de todos los eventos en orden cronológico con fechas como Janurary 17th, 1904 apareciendo como 19040117 (formato aaaammdd)

Además, dado que estas son listas vinculadas donde, por ejemplo, ...- (t0: time {num: 19040000}) - [: precede] -> (t1: time {num: 19050000}) -... en los nodos también.

Esto es, hasta ahora, cómo me gustó hacer mi cita del evento


También puede almacenar las fechas en su representación numérica en el siguiente formato: YYYYMMDD

En su caso, 12200101 sería el 1 de enero de 1221 y el 12701231 sería el 31 de diciembre de 1270.

Es un formato útil y legible, y puedes realizar búsquedas de rango como:

MATCH (h:HistoricEvent) WHERE h.date >= 12200101 AND h.date < 12701231 RETURN h

También le permitiría ordenar por fechas, si es necesario.