むしろユリウス日付としてよりも、(長い整数として格納されている)は、UNIXエポックタイムスタンプの形式で日付を保持することが容易です。 Neo4jには、日付/時刻形式は組み込まれていません。
タイムスタンプを使用して、日付の計算を実行して、現在の日付に基づいてプロジェクトの日数を指定することができます。
Cypherのtimestamp()機能は、neo4j内の現在のUnix時間を取得する方法を提供します。
Neo4Jの各関係は、関係の実際の内容を除いて、内部的に34バイトのデータを占有します。スケジュール済みの完了と検証済みの完了の両方を、2つの関係として格納するのではなく、単一の関係でプロパティとして保持する方が効率的です。
リレーションシップには、スケジュールされた日付と確認された日付(NoSQLの利点)の両方を持つ必要はありません。後でSETキーワードを使用して確認日を追加できます。
例を挙げてください。
次のCypherステートメントを使用して作成します。
Create (p:Person {name:'Bill'})-[r:Works_On {scheduledcompletion: 1461801600}]->(pro:Project {name:'Jabberwakie'})
次のCypherステートメントを使用して、検証済みの日付を現在の時刻に設定します。
Match (p:Person {name:'Bill'})-[r:Works_On]->(pro:Project {name:'Jabberwakie'}) set r.verifiedcompletion=timestamp()
プロジェクトが予定より遅れたりしなかった場合はブール値を返すために、この場合には、計算のいくつかの種類を実行するには、次のサイファーのステートメントを使用します。
Match (p:Person {name:'Bill'})-[r:Works_On]->(pro:Project {name:'Jabberwakie'}) return case when r.scheduledcompletion > r.verifiedcompletion then true else false end as behindschedule
本当にありがとうございました。あなたも提案した日付形式を調べます。 –
よろしくお願いいたします。私はそれが助けてくれることを願っています:) – Anomaly211