如何获取过去24小时的记录?

时间:2012-10-12 11:44:26

标签: android sql database sqlite

我的代码如下: -

DateFormat df = DateFormat.getDateTimeInstance();

String currentDateTimeString = df.format(new Date());

Date today = df.parse(currentDateTimeString);

Date previous_date = new Date(today.getTime()-(24 * 3600000));


cursor = db.rawQuery(" select * from Table_Name where Date > " + previous_date ,null);

today,previous_date和next_date的值是正确的,但查询无法执行并抛出异常。任何形式的帮助都会很棒。

3 个答案:

答案 0 :(得分:0)

在MySQL中:

   SELECT  * FROM    tblnm
   WHERE   datefield >= SYSDATE() - INTERVAL 1 DAY 

在SQL Server中:

SELECT  * FROM    tblnm
 WHERE   datefield >= DATEADD(day, -1, GETDATE())

答案 1 :(得分:0)

String pDate = dateFormat.format(previous_date);
String nDate = dateFormat.format(next_date);

cursor = db.query(true, TABLE_name, new String[] { //there your all columns name// }, "Date BETWEEN ?
              AND ?" , new String[]{pDate,nDate}, null, null, null,null);

答案 2 :(得分:0)

这究竟是做什么的?

DateFormat df = DateFormat.getDateTimeInstance();
String currentDateTimeString = df.format(new Date());
Date today = df.parse(currentDateTimeString);
Date previous_date = new Date(today.getTime()-(24 * 3600000));

如果我总结一下,你创建一个格式化程序,然后是一个现在为日期的字符串,然后是一个基于解析该字符串的日期,然后删除一些millis以创建另一个日期?

使用它:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY, -1);
Date yesterday = cal.getTime();

那是一个。

其次,为什么要使用rawQuery? query是一个更好的,主要是因为它为你做了参数转换。

如果你观察你的查询字符串,你会发现你的日期没有被转义,没有正确格式化......

使用Sardor Dushamov的解决方案