-2

私のコードは次のようになります:-

DateFormat df = DateFormat.getDateTimeInstance();

String currentDateTimeString = df.format(new Date());

Date today = df.parse(currentDateTimeString);

Date previous_date = new Date(today.getTime()-(24 * 3600000));


cursor = db.rawQuery(" select * from Table_Name where Date > " + previous_date ,null);

today、previous_date、next_dateの値は正しいですが、クエリの実行に失敗し、例外がスローされます。どんな種類の助けも素晴らしいでしょう。

4

3 に答える 3

0
String pDate = dateFormat.format(previous_date);
String nDate = dateFormat.format(next_date);

cursor = db.query(true, TABLE_name, new String[] { //there your all columns name// }, "Date BETWEEN ?
              AND ?" , new String[]{pDate,nDate}, null, null, null,null);
于 2012-10-12T11:58:00.847 に答える
0

MySQLの場合:

   SELECT  * FROM    tblnm
   WHERE   datefield >= SYSDATE() - INTERVAL 1 DAY 

SQL Serverの場合:

SELECT  * FROM    tblnm
 WHERE   datefield >= DATEADD(day, -1, GETDATE())
于 2012-10-12T11:56:19.813 に答える
0

これは一体何をすることになっていますか?

DateFormat df = DateFormat.getDateTimeInstance();
String currentDateTimeString = df.format(new Date());
Date today = df.parse(currentDateTimeString);
Date previous_date = new Date(today.getTime()-(24 * 3600000));

これを要約すると、フォーマッターを作成し、次に現在の日付の文字列を作成し、次にその文字列の解析に基づく日付を作成し、さらに数ミリ秒を削除してさらに別の日付を作成しますか?

これを使って :

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY, -1);
Date yesterday = cal.getTime();

それは1つです。

次に、なぜrawQueryを使用するのですか?queryこれははるかに優れたものです。これは主に、引数を変換するためです。

クエリ文字列を観察すると、日付がエスケープされておらず、適切にフォーマットされていないことがわかります...

SardorDushamovのソリューションを使用する

于 2012-10-12T12:02:32.833 に答える