2016-05-23 14 views
3

私は過去1週間データベースから値を取得しようとしています。今現在、私は現在の時刻と現在の時刻の間の値を取得するためにクエリを実行しています - 7days。私は過去1週間、バーカートにデータを表示したいと考えています。このようにして、私のアルゴリズムが動作します。しかし、私が月曜日にデータを表示したい場合、SQLクエリーは先週全体からの値を返します(今日 - 7日以降)ので、先週の値もグラフ上にポップアップします。しかし、私は日曜日以降の値を見たいだけです。同様に、もし私が水曜日にアプリを開くと、それは私に日曜日からのプロットを表示し、前の水曜日以来ではありません。私は毎週日曜日にデータを取得するSQLクエリを探しています。またはJavaは、私のデータベースからすべてのデータをクリアするための日付(土曜日ごとに)に基づいて起動する機能を持っていますか、私のコードがうまくいくようにしてください。ここ日付と日付に基づくSQLクエリ

は今私のコードです:

public Cursor getStepsWeek(long time_week) throws ParseException{ 

    String time_past = String.valueOf(new SimpleDateFormat("dd-MM-yyyy ", Locale.getDefault()).format(time_week)); 
    int ex = Integer.parseInt(time_past.split("-")[0]) - 7; 
    String extract = String.valueOf(ex+"-") + String.valueOf(new SimpleDateFormat("MM-yyyy HH:mm", Locale.getDefault()).format(time_week)); 
    Date date = new SimpleDateFormat("dd-MM-yyyy HH:mm", Locale.getDefault()).parse(extract); 

    Log.d("time past",date.getTime()+""); 
    SQLiteDatabase liteDatabase = this.getReadableDatabase(); 
    Cursor cursor = liteDatabase.rawQuery("select * from steps_table where time_steps between " + String.valueOf(date.getTime()) + " and " + (time_week), null); 
    return cursor; 
} 
+0

重複エントリーhttp://stackoverflow.com/questions/23051197/how-to-get-data-of-current -week-only-in-sql-server – afrose

+0

私のDBの実装はちょっと違いますので、混乱しています –

答えて

1

は、あなたの心を構成しています。データを「過去1週間」に表示するか、のデータをこの週間のみ(日曜日以降)にしますか?

とにかく、最近の日曜日の日付を特定するための一般的なJavaコードです。日時が今日の場合は今日に戻ります。年の最初の日を取得するために

// Get "now" 
Calendar cal = Calendar.getInstance(); 

// Update to most recent "first day of week", e.g. SUNDAY in the U.S., MONDAY in France 
int firstDayOfWeek = cal.getFirstDayOfWeek(); 
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); 
if (dayOfWeek < firstDayOfWeek) 
    dayOfWeek += 7; 
cal.add(Calendar.DAY_OF_MONTH, firstDayOfWeek - dayOfWeek); 

// Remove time fields 
int year = cal.get(Calendar.YEAR); 
int month = cal.get(Calendar.MONTH); 
int day = cal.get(Calendar.DAY_OF_MONTH); 
cal.clear(); 
cal.set(year, month, day); 

// Get a Timestamp for use with PreparedStatement 
Timestamp startDate = new Timestamp(cal.getTimeInMillis()); 

、使用:

Calendar cal = Calendar.getInstance(); 
int year = cal.get(Calendar.YEAR); 
cal.clear(); 
cal.set(year, Calendar.JANUARY, 1); 
Timestamp startDate = new Timestamp(cal.getTimeInMillis()); 
+0

今週の土曜日から土曜日までデータが必要です。 –

+0

私は何ヶ月も似たようなコードがありますか?同様に、年が始まってから数ヶ月。 –

関連する問題