我有一个“小”问题。我有一个SQLiteDatabase
(“PLB”),上面有一个名为“Flights”的表。在此表中,我有一个名为"Total_Flight_Time"
TIME 类型的列,它可以将时间存储在HH:MM format
. 我想计算小时和分钟的总和。类似的东西,01:20 + 01:50 = 03:10 (HH:MM)
但我不知道该怎么做。
我在stackoverflow上找到了一个代码:来自DBAdapter的函数:
public Cursor getTotalTime() throws SQLException {
return db.rawQuery("SELECT sum(strftime('H%:%M', Total_Flight_Time) - strftime('H%:%M', '00:00')), 'unixepoch' FROM Flights",null);
}
主要活动中的函数调用(它应该在文本视图中显示 SUM 结果):
DBHelper.open();
TextView txt = (TextView)findViewById(R.id.textView22);
String total = DBHelper.getTotalTime().toString();
txt.setText(total);
但在屏幕上显示:android.database.sqlite.SQLiteCursor@41aa42b8
我必须如何执行函数和函数调用来解决问题,我希望它显示 HH:MM?:)
解决了!解决方案:
DBAdapter 功能:
public Cursor getTotalTime() throws SQLException {
return db.rawQuery("SELECT time(sum(strftime('%s', Total_Flight_Time) - strftime('%s','00:00:00')),'unixepoch') FROM Flights",null);
}
主活动中的函数调用:
TextView txt = (TextView)findViewById(R.id.textView22);
Cursor c = DBHelper.getTotalTime();
c.moveToFirst();
String[] names = c.getColumnNames(); // inspect this as it should have a length of 1
String total = c.getString(c.getColumnIndex(names[0]));
txt.setText(total);