2015-11-01 355 views
1

我创造了一些用户节点有一定的价值,时间:如何在neo4j中存储时间数据类型?

CREATE (u1:User {name:'user 1', pickUpTime:'10:10', dropOffTime:'10:35'}) 

我不知道什么是一个好办法(格式)存储时间,因为当我做这样的查询

MATCH (u:User) RETURN u.name AS name, u.pickUpTime AS pickTime Order by pickTime desc 

我得到这个结果作为

name pickTime 
user 3 9:30 
user 2 10:20 
user 1 10:10 

,我需要得到一个有序的结果:

name pickTime 
user 3 9:30 
user 1 10:10 
user 2 10:20 

有什么建议吗?在此先感谢

回答

2

有两点需要注意:

  1. 您应该使用像HH的格式:毫米这意味着你需要指定9:30为09:30。

  2. 另外,在你需要“通过pickTime递增顺序”来指定,而不是说明,如果你想获得订单之前的情况下,你的愿望

+0

使用Neo4j 2.3。并且该字段上的索引也可以在该字段中使用范围搜索以及以'开始于'来查找例如所有'09:'9点钟匹配。 –

2

时间是一个非常棘手的事情,它第一次出现,通常是因为时间往往指的是时区,日期或其他东西。

很多人会存储他们通过System.getCurrentTimeMillis()从java获得的epoch time。然后他们会将它转换为以后需要的任何东西。

其他人会存储the number of minutes after midnight如果他们只是在寻找一天中的相对时间(即2:30 PM)

另一种选择是使用Java Date对象的值。这些更丰富,并允许您表达时区,日历的概念等。

将它们存储为字符串绝对是大多数用例的失败主张。像长整数一样存储允许直接比较,但是也要求将诸如纪元时间之类的东西转换为您真正想要的字符串,例如“9:30”

+1

也有timeplot()函数在密码 –

+0

@FrobberOfBits谢谢,我认为存储午夜后的分钟数是一个不错的选择。所以我想我会考虑如果我想执行计算顺便说一句 – andreahg