-2

我的代码看起来像: -

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 的值是正确的,但查询无法执行并引发异常。任何形式的帮助都会很棒。

4

3 回答 3

0

在 MySQL 中:

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

在 SQL Server 中:

SELECT  * FROM    tblnm
 WHERE   datefield >= DATEADD(day, -1, GETDATE())
于 2012-10-12T11:56:19.813 回答
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);
于 2012-10-12T11:58:00.847 回答
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));

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

用这个 :

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

那是一个。

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

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

使用 Saror Dushamov 的解决方案

于 2012-10-12T12:02:32.833 回答