我正在使用sqlitedatabase中的当前日期。
public String getDataforSevenDays() {
// TODO Auto-generated method stub
String[] columns = new String[]{KEY_ROWID, KEY_NAME};
String result =" ";
long sevenDays = System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 7;
Cursor c = ourDatabase.query(DATABASE_TABLE, null, KEY_DATE + " > "+ sevenDays, null, null, null, null);
int iRow = c.getColumnIndex(KEY_ROWID);
int iName = c.getColumnIndex(KEY_NAME);
for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
result = result + c.getString(iName) + "\n";
}
return result;
}
现在,如果我想查询数据库并获取过去14天的数据,那么这是正确的方法吗?
long fourteenDays = System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 14;
Cursor c = ourDatabase.query(DATABASE_TABLE, null, KEY_DATE + " > "+ fourteenDays, null, null, null, null);
答案 0 :(得分:0)
这样的查询,只要您还在数据库中存储毫秒时间戳。
根据评论,您可以存储格式化的日期字符串,以便查询无法正常工作。要解决此问题,请存储长整数值,例如System.getTimeInMIllis()
或Date
getTime()
返回的值。
此外,如果计算稍长的时间段,请在计算中使用long来防止32位有符号整数溢出,例如:将1000 * 60 * 60 * 24 * 14
更改为1000 * 60 * 60 * 24 * 14L
。