2012-10-12 59 views
-2

我的代碼如下所示: -如何獲得最近24小時的記錄?

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); 

今天,previous_date值和NEXT_DATE是正確的,但查詢執行失敗,並拋出一個異常。任何形式的幫助都會很棒。

+0

關鍵字之間使用insted的的>或< –

+0

請出示最終創建的實際SQL語句 –

+0

發佈日誌錯誤 – GoCrazy

回答

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); 
+0

謝謝Sardor。將嘗試它並將其標記爲已接受的答案。 – dejavu

0

在MySQL:

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

在SQL Server:

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

不相關,問題是關於sqlite – njzk2

+0

謝謝Nirav。 – dejavu

+0

@dejavu:謝謝 –

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是一個更好的,主要是因爲它使你的參數轉換。

,如果你觀察你的查詢字符串,你會看到你的日期沒能逃脫,格式不正確......

使用薩爾多Dushamov的解決方案

+0

非常感謝......按照您所說的方式修改了整個代碼。 – dejavu

相關問題