2013-02-07 17 views
5

のすべてのレコードを選択したSQLite。は、私は私のデータベースで次の表している今日と前日

今、私はすべてのレコードをつかむ以下の機能があります。今、私は何をしたいのか

public Cursor fetchCurrentLogs(long dayExerciseDataID) { 
    // where day = today 
    Cursor cursor = database.rawQuery("select " + MySQLiteHelper.COLUMN_ID + "," + MySQLiteHelper.COLUMN_REPS + ", " + MySQLiteHelper.COLUMN_WEIGHT + " " + 
      "from " + MySQLiteHelper.TABLE_LOGS + " " + 
      "where " + MySQLiteHelper.COLUMN_ID_DAY_EXERCISE + " = '" + dayExerciseDataID + "'", null); 
    if (cursor != null) { cursor.moveToFirst(); } 
    return cursor; 
} 

を、私はこの関数は今日だけのレコードをつかむようにしたいです。

次に、別の機能をまったく同じにしたいのですが、今日のレコードを取得する代わりに、前日のレコードを取得します。以前は、今日ではないレコードを持つ最新の日を意味します。だから、それは昨日、または3日前、または1月前かもしれません。

私はあなたが現在の日のためにこのような何かを行うことができますMySQLの中で知っている:

where date_format(from_unixtime(COLUMN_DATE), '%Y-%m-%d')= date_format(now(), '%Y-%m-%d')

SQLiteのためのこれと同等とは何ですか?

また、上記のように誰でも前日のwhere句を手伝ってもらえますか?

ありがとうございます。

+0

COLUMN_DATEにはどのような値が入りますか?それはUNIXのタイムスタンプですか? –

答えて

14
String sql = "SELECT * FROM myTable WHERE myDate >= date('now','-1 day')"; 
Cursor mycursor = db.rawQuery(sql); 

EDIT:

SELECT * from Table1 where myDate = (select max(myDate) from Table1 WHERE myDate < DATE('now')) 
+0

私は前日のレコードを選択する必要があります。わかる?それで、今日、3日前と6日前にデータベースにエントリがあり、今日のレコードを取得する関数と、3日前にレコードを取得する関数が必要です。 – scarhand

+0

編集がうまくいったありがとうございました! – scarhand

+0

こんにちは私は現在の日付の最後の5分のレコードをフェッチする必要がありますどのように私はこれを達成することができますか? @ヤクブ –

-2

SQL文では変換を行わないでください。 Javaメソッドで変換を行います。 Javaメソッドで完全なSQL文を作成してください。必要なのは、Java DateTimeをUnix形式に変換する機能だけです。

Cursor cursor = database.rawQuery("select " + MySQLiteHelper.COLUMN_ID + "," + MySQLiteHelper.COLUMN_REPS + ", " + MySQLiteHelper.COLUMN_WEIGHT + " " + 
      "from " + MySQLiteHelper.TABLE_LOGS + " " + 
      "where " + MySQLiteHelper.COLUMN_ID_DAY_EXERCISE + " = '" + dayExerciseDataID + 
      " OR " + MySQLiteHelper.COLUMN_ID_DAY_EXERCISE + " = '" + previousDay(dayExerciseDataID) + 
"'", null); 

あなたはそのpreviousDayメソッドを作成する必要があります。

0

は、それが誰かを助けることができる、手遅れになることができるが。私はいくつかの間違いがあるかもしれない場合、それが原因文字列連結を容易に行うことができ...私はちょうど私のバージョンを入れたかったし、おそらくそれも最高ではないが、以前の開発者として、異なる

String selectQuery = "SELECT * FROM "+Your_table+" 
WHERE ("+Column_1+" = "+Value_For_Column1+" AND date("+Your_Column_With_Time_Values+") == date('now')) AND 

"+Some_Other_Column+" = "+Some_Other_Value+" OR "+Some_Other_Column+" = "+Some_Other_Value+" ORDER BY "+Your_Column+" DESC"; 

致しておりません。 ありがとうございます!

関連する問題