2016-05-10 15 views
2

私はタイムスタンプ(購入時と同じ日付時間オブジェクト)で購入トランザクションを保存しています。開始日である&から結果を抽出しようとすると、結果が間違っています。2つの日付オブジェクトの "between"クエリーがRealmの間違った出力を返しています

ここで与えられたの出発のために今、私が保管しています日付オブジェクト/フォーマットの一例です

27-01-2016 
27-02-2016 
10-05-2016 
27-05-2016 

そして、この2つの日付の間でオブジェクトを取得するためのクエリで、

RealmResults<Transactions> result = realm.where(Transactions.class) 
       .between("timestamp", start, end) 
       .findAll(); 

日付:01-01-16 & ending_date:29-02-2016、それは単一のオブジェクトを返します "27-01-2016"が間違っています。

質問には何か不足していますか?

+1

'greaterThanOrEqual(" timestamp "、start).lessThanOrEqual(" timestamp "、end);'を試すことができますか? – EpicPandaForce

+0

説明したケースをテストしたところ、うまくいきました... https://gist.github.com/beeender/13e149a073c19164415ea571c404cc80を参照してください。簡単なコードで再現できますか?ありがとう! – beeender

答えて

0

あなたのタイムスタンプは文字列であると仮定します。その場合、タイムスタンプを間違って保存しています。 >または<などを文字列にする場合は、数字のように左から右に移動します。 27は01と29の間にあるので、後の数字は関係ありません。

最大値から最小値、またはYYYY-MM-DDを保存する必要があるようにクエリを実行するには、実際には左から右に向かって実際に正しく比較されます。明らかに、開始日と終了日もその形式でなければなりません。あなたは既に重要な先行0を確実に持っています。

関連する問題