我将Neo4J v3.3升级到v3.4,以尝试新的时空功能。
我正在尝试非常简单的查询。一次使用日期功能,一次不使用日期功能。结果不同。
match (r:Model) where r.open_date>"2018-04-26" return count(r);
结果是19283。
match (r:Model) where r.open_date>date("2018-04-26") return count(r);
结果为0。
使用新功能的方式是什么?
答案 0 :(得分:2)
[编辑]
新的temporal types(例如Date
和Duration
)是非常特殊的类型,直接将它们与字符串或数字进行比较是没有意义的。
假设r.open_date
具有right format,这应该可以工作:
MATCH (r:Model)
WHERE DATE(r.open_date) > DATE("2018-04-26")
RETURN
此外,以下查询的性能可能更高(因为不需要构造第二个DATE对象):
MATCH (r:Model)
WHERE TOSTRING(DATE(r.open_date)) > "2018-04-26"
RETURN