0

データベースに情報を保存するアクティビティがあります。日付 (yyyy-MM-dd) 用と時間 (HH:mm) 用の 2 つのテキストビューがあります。datetime を TEXT として保存すると、適切に並べ替えて desc できますが、sqlite クエリで last/7/30 日間のレコードを見つけることができますか?このクエリの例 datetime TEXT はいつですか?

4

1 に答える 1

2

最初に、分析したい日付範囲を計算してから、その境界をテキスト形式に変換する必要があります (いくつかの日付形式ユーティリティを使用できます)。次に、変換された日付をパラメータとして Db をクエリする必要があります。

過去 30 日間のリストが必要だとします。

Calendar theEnd = Calendar.getInstance();
Calendar theStart = (Calendar) theEnd.clone();

theStart.add(Calendar.DAY_OF_MONTH, -30);

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String start = dateFormat.format(theStart.getTime());
String end = dateFormat.format(theEnd.getTime());

// Now you have date boundaries in TEXT format

Cursor cursor = db.rawQuery("SELECT * FROM table WHERE timestamp BETWEEN "+start+" AND "+end);
于 2012-09-13T06:30:08.613 に答える