我有一個其他問題 DBAdapter.java:運行查詢與數據條件SQLite的
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);
}
的問題是,該查詢不起作用。 我婉查詢從列Total_Flight_Time,表返回SUM機票在HH:MM:與01/01/2012和01/02/2012之間日期列線SS格式(DD/MM/YYYY)。我也嘗試了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);
我曾與日截止日嘗試,但我有同樣的問題。 另外,你可以告訴我所有的功能應該是什麼樣子? * =時間(總和(...))以及我還有什麼? – Iosif
或者我可以將日期之間的數據複製到另一個表中?如果是的話,該怎麼做? – Iosif
@losif我不是一個很大的SQLite用戶,但是'SUM'只適用於組。你的時間表達可能不會創建一個組。您可能必須將該表達式分配給別名字段,而不是該字段的「SUM」。看我的編輯。至少它會讓你看到表達式的組件。這可能有助於弄清楚什麼是錯誤的。 – cgTag