我将 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。
使用新功能的方式是什么?
[已编辑]
新的时态类型,如Date
和Duration
,是非常特殊的类型,将它们直接与字符串或数字进行比较是没有意义的。
假设r.open_date
具有正确的格式,这应该可以工作:
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