0

2 つの日付から特定の日付を選択しようとしています。DBに格納されている形式は ですM/d/yyyy。私がやろうとしているのは、2 つの日付を渡すことです。この 2 つの日付の間の列のすべてのデータを選択したいと考えています。DBにデータがあることは知っていますが、日付によっては何ももたらされません。日付によってはデータがもたらされますが、日付によってはデータがもたらされます。

例:

最初の日付として 2011 年 7 月 10 日を選択し、2 番目の日付として 2011 年 7 月 16 日を選択すると、データが表示されます。しかし、最初の日付として 2011 年 7 月 9 日を選択し、2 番目の日付として 2011 年 7 月 16 日を選択すると、何ももたらされません。

これが私のクエリです:

Cursor cursor = db.query(CONTACT_DATA, new String[] { "duration" },
                "date >= ? AND date <= ?",
                new String[] { firstDate, secondDate }, null, null, null);

誰かがこの質問を手伝ってくれるなら。ありがとう!

4

2 に答える 2

0

SQLite にはネイティブの日付型がありません。日付を文字列として比較しています。そのため、日付が同じ月と年で、1 日の桁数が同じ場合、クエリは機能しているように見えますが、これは単なる運です。

通常、SQLite ユーザーは、文字列として正しくソートされる ISO-8601 形式 (YYYY-MM-DD) を使用して日付文字列をフォーマットします。

SQLite には日付関数があります。日付がすべて適切な形式であれば、これらをltrim および rtrim と一緒に使用して、日付をクエリで使用できる形式に変換できます。

于 2011-07-18T03:27:48.807 に答える
0

日付をミリ秒 (エポック形式) として保存するので、比較しやすくなります。日付を印刷するときは、変換します。

于 2011-08-02T12:54:00.230 に答える