我想按小时从sqlite数据库中获取记录。以下是我的问题
1)我必须从sqlite提取过去一小时的所有数据。我尝试了以下查询,但它为我提供了当天所有时间的数据
询问:
SELECT * FROM Table1 where Date >= datetime('now','-1 hours')
其中Table1是我的表名,Date是DATETIME类型的列名
例如:数据库中有以下记录
在此处输入图片说明
当我在sqlite firefox浏览器工具中触发查询时,它返回我
我不想要的。
从数据库获取过去1小时数据的查询应该是什么
2)应该根据每小时查询什么才能从数据库中获取值,就像我必须获取过去1个小时的数据,然后是过去1-2个小时的数据,过去2-3个小时的数据,即一个小时的数据两个小时之间?
任何帮助将不胜感激。
终于我找到了解决自己问题的方法
以下是对我有用的代码
``` DateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); Date date = new Date(); Calendar calendar = Calendar.getInstance(); String startDate = dateFormat.format(date); String endDate = “”; for (int i = 1; i <= 24; i++) { System.out.println(“Start Date:- ” + startDate); calendar.add(Calendar.HOUR_OF_DAY, -1); date = calendar.getTime(); endDate = dateFormat.format(date); System.out.println(“End Date:- ” + endDate); String data = dbAdapter.getOutDoorHourlyData(startDate, endDate); System.out.println(“Hourly Average:- ” + data); startDate = endDate; endDate = “”; }
public String getOutDoorHourlyData(String startDate, String endDate) { double outdoorHourly = 0;
Cursor cursor = _sqliteDB.rawQuery("Select AVG(" + COLOUMN_NAME + ") from (Select * FROM " + TABLE_NAME + " where " + COLOUMN_NAME + " >= '" + endDate + "' and " + COLOUMN_NAME + " < '" + startDate + "')", null); try { if (cursor != null) { if (cursor.getCount() > 0) { cursor.moveToFirst(); do { outdoorHourly = cursor.getDouble(0); } while (cursor.moveToNext()); } cursor.close(); } } catch (Exception e) { e.printStackTrace(); } String hourlyData = decimalFormat.format(outdoorHourly); hourlyData = hourlyData.replace(",", "."); return hourlyData; }
} ```
希望以后能对某人有所帮助