我的代码如下: -
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的值是正确的,但查询无法执行并抛出异常。任何形式的帮助都会很棒。
答案 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的解决方案