私は別の問題 DBAdapter.javaを持っています:
public Cursor getTotalFlightTime_Custom() throws SQLException{
return db.rawQuery("SELECT time(sum(strftime('%s', Total_Flight_Time) - strftime('%s','00:00:00')),'unixepoch') FROM Flights WHERE Date BETWEEN '01/01/2012' AND '01/02/2012'",null);
}
MainActivity.java :
private void CustomReport(){
DBHelper.open();
TextView txt = (TextView)findViewById(R.id.lblReportTotalFlightTimeAUTO);
Cursor cursor = DBHelper.getTotalFlightTime_Custom();
cursor.moveToFirst();
String[] names = cursor.getColumnNames();
String AUTO = cursor.getString(cursor.getColumnIndex(names[0]));
if(AUTO == "")
txt.setText("00:00:00");
else
txt.setText(AUTO);
}
問題は、クエリが機能していないことです。01/01/2012から01/02/2012 (DD/MM/YYYY)までのDate列を持つ行について、列Total_Flight_Time、テーブルFlightsからSUMを返すクエリが必要です。YYYY-MM-DD 形式も試してみましたが、メッセージが表示されずにプログラムがクラッシュしました。
問題がどこにあるかはわかっていると思いますが、よくわかりません:
WHERE Date BETWEEN '01/01/2012' AND '01/02/2012'
しかし、私はそれを修正する方法がわかりません。クエリの他の部分は正しいはずです。なぜなら、同じ列でテーブル全体に使用したため、期待どおりに機能するからです。
EIDT:データ列はINTEGERとして格納されます
手伝って頂けますか?アドバイスありがとうございます:D
コメント コード:
String dateStringfrom = "01/01/2012";
String dateStringto = "01/02/2012";
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date convertedDatefrom = new Date();
Date convertedDateto = new Date();
try {
convertedDatefrom = dateFormat.parse(dateStringfrom);
convertedDateto = dateFormat.parse(dateStringto);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(convertedDatefrom);
System.out.println(convertedDateto);
Log.d("Converted From","result: " + convertedDatefrom);
Log.d("Converted To","result: " + convertedDateto);