博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Neo4j:Cypher的时间日期范围操作
阅读量:6036 次
发布时间:2019-06-20

本文共 1985 字,大约阅读时间需要 6 分钟。

原文链接:

本周我工作中有一项任务,是使用Cypher查询语言去创建一个日期范围的数据集。

我之前使用过duration函数,它能够对指定时期进行增加或删除操作,所以,我想我可以从这个函数开始。如果我想查找2019年1月1号之后一天的日期,可以通过下面的查询语句:

neo4j> WITH date("2019-01-01") AS startDate     RETURN startDate + duration({days: 1}) AS date;+------------+| date       |+------------+| 2019-01-02 |+------------+

下面我们扩展下这个代码,我们要得到2019年1月1号后5天的数据集,这时我们可以使用range函数。

neo4j> WITH date("2019-01-01") AS startDate     RETURN [day in range(0, 5) | startDate + duration({days: day})]     AS dates;+--------------------------------------------------------------------------+| dates                                                                    |+--------------------------------------------------------------------------+| [2019-01-01, 2019-01-02, 2019-01-03, 2019-01-04, 2019-01-05, 2019-01-06] |+--------------------------------------------------------------------------+

如果你知道想要的天数,你会发现,通过上面的示例可以很容易获取这些天的集合。但是,如果我们仅知道开始日期和结束日期,要如何获取这中间天数的集合呢?这时我们就可以试试duration.inDays函数了,它能计算两个日期之间的范围。

neo4j> RETURN duration.inDays(date("2019-01-01"), date("2019-01-06")) AS difference;+------------+| difference |+------------+| P0M5DT0S   |+------------+

这是什么鬼?别急,inDays返回的是一个对象,可以通过days属性得到天数。

neo4j> RETURN duration.inDays(date("2019-01-01"), date("2019-01-06")).days AS days;+------+| days |+------+| 5    |+------+

下面我们更新一下最开始的示例,用开始日期和结束日期去替换到Cypher查询语句中硬编码的天数。

neo4j> WITH date("2019-01-01") AS startDate, date("2019-01-06") AS endDate       WITH startDate, duration.inDays(startDate, endDate).days AS days       RETURN [day in range(0, days) | startDate + duration({days: day})]       AS dates;+--------------------------------------------------------------------------+| dates                                                                    |+--------------------------------------------------------------------------+| [2019-01-01, 2019-01-02, 2019-01-03, 2019-01-04, 2019-01-05, 2019-01-06] |+--------------------------------------------------------------------------+

OK,关于Cypher日期范围的操作就是这么简单,希望对你有用。

转载地址:http://vilhx.baihongyu.com/

你可能感兴趣的文章
/etc/profile文件内容
查看>>
一页纸IT项目管理:大道至简的实用管理沟通工具
查看>>
IE6 7下绝对定位引发浮动元素神秘消失
查看>>
浏览器的回流和重绘及其优化方式
查看>>
2.4 salt grains与pillar jinja的模板
查看>>
VDI序曲二十 桌面虚拟化和RemoteApp集成到SharePoint 2010里
查看>>
移动互联网,入口生死战
查看>>
JAVA多线程深度解析
查看>>
Kafka High Level Consumer 会丢失消息
查看>>
时间轴
查看>>
java 获取系统当前时间的方法
查看>>
Ubuntu 10.04升级git 到1.7.2或更高的可行方法
查看>>
Spring Security4实战与原理分析视频课程( 扩展+自定义)
查看>>
第一周博客作业
查看>>
thinkpython2
查看>>
oracle recyclebin与flashback drop
查看>>
svmlight使用说明
查看>>
Swing 和AWT之间的关系
查看>>
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>