2015-11-01 73 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

相關問題