最近使用neo4j存储数据,其中包含了大量的时间数据,存储的时候都是以字符串的形式存储,如 ‘11:07’,导致后期查询后的数值计算比较困难。中文的这方面笔记似乎比较少,于是记录一下。日期和具体的时间操作类似,可以查看参考资料。才上手,欢迎指正。
一般字符转化为数字 (‘4’ -> 4)
- toInteger(‘4’)
时间转换
-
localtime(‘11:07’ ) 转化为 11:07
-
比较大小 (以下返回true)
return localtime('14:07')<localtime('14:30')
- 计算两个时间差(捕捉到秒):
return duration.inSeconds(localtime('12:07'), localtime('12:30'))
返回:“P0M0DT1380S”,P0M0DT后面就是正确的秒数,如果前面数据大于后面,返回结果类似于:“P0M0DT-1380S”。没有找到去掉前面的P0M0DT字符的函数。
参考资料:
- https://neo4j.com/docs/cypher-manual/current/functions/temporal/duration/#functions-duration-create-string
- 计算差值:https://neo4j.com/developer/cypher/dates-datetimes-durations/
- 时间转换:https://neo4j.com/docs/cypher-manual/current/syntax/temporal/
neo4j 相关资料
- 中文版部分文档:https://www.lidihuo.com/neo4j/neo4j-index.html
- 关键字:https://neo4j.com/docs/cypher-manual/current/clauses/where/
- apoc安装(非desktop版本):https://www.jianshu.com/p/001ea1a63396