使用cypher查询创建动态边缘名称

时间:2013-09-25 11:35:47

标签: neo4j cypher

START customerName=node(483), b = node(485, 498, 500)
MATCH customerName-[s:Sell]->b
WITH s.transactionDate AS date, customerName, b, sum(s.transactionAmount) AS total 
CREATE customerName-[:sales_summary { date:date, tamt:total }]->b

这里我想使用MMM YY格式将sales_summary关系替换为运行时日期。

like customerName - Sep 08(tamt = total) - > b 这里边缘名称= 9月08日 - 日期的运行时间值

2 个答案:

答案 0 :(得分:1)

Cypher本身没有日期操作方法。您可能希望将关系上的日期设置为long,然后在演示文稿代码中格式化MMM YY,这在数据库中的性能要高得多。

答案 1 :(得分:0)

我遇到了类似的挑战。对于等效于TO_DATE的SQL(node.Date_value)> TO_DATE(' 01-JAN-09',' DD-MON-YY')或类似的东西。

我想我们目前可能需要执行以下步骤:

a)使用Mark Needham提供的here代码片段为Year Month,date创建节点。 b)请记住根据您的数据在案例条件下从MM-DD-YY(数字)到DD-MON-YY进行更改。

Alan Robertson在帖子评论中指出,这也是了解neo4j对于像我们这样的新手更好地运作的一种很好的方式,即使它可能需要在数据库中创建几千个节点而不占用太多空间。

这可能不是最佳答案,但可能有助于摆脱当前的问题。

迈克尔·亨格在here中提供了最好的选择。 其中一种方法是创建一个额外的属性,它是日期的unix时期,然后将值除以86400以获得一天的分辨率。此后,可以完成日期操作。