导入时有没有办法告诉neo4j值的类型?例如,neo4j 是否知道“2015-0104T10:33:44”是日期还是字符串?
谢谢!
Neo4j 使用 java 原始类型、字符串或这些属性值的数组。没有日期类型。所以“2015-0104T10:33:44”是一个字符串。
Cypher 提供了几个用于类型转换的函数,例如toFloat
, toInt
, ... 这可能对您有所帮助。
大多数人从纪元开始存储毫秒以获取日期和时间信息。但是 Cypher 还没有将字符串转换为毫秒的功能,因此您可能在 csv 文件的预处理步骤中执行此操作。
老实说,我不知道 2015 年问这个问题时的情况如何,但现在,至少,在使用 LOAD CSV 导入时,可以使用任何一种密码函数。
这意味着,就像您可以使用 一样,您也可以在语句的和部分toInt(...)
使用 eg date(row.date)
(其中 row.date 可能包含类似“2018-07-01”的值)。ON MATCH
ON CREATE
LOAD CSV
有关函数的详细信息,请参阅https://neo4j.com/docs/developer-manual/current/cypher/functions/。
至于 Neo4j 中可用的数据类型,自 2015 年以来,情况可能也发生了很大变化。查看https://neo4j.com/docs/developer-manual/current/cypher/syntax/values/表明现在可以使用以下时间类型:Date、Time、LocalTime、DateTime、LocalDateTime 和 Duration。
Neo4j 中有一个日期类型:如果您使用 Neo4j 数据导入工具导入 CSV 文件(请参阅链接https://neo4j.com/docs/operations-manual/current/tools/import/file-header-format / ) 您可以为文件的列指定具有特定格式的 dateTime
另请参阅:https ://neo4j.com/docs/developer-manual/current/cypher/syntax/temporal/