2012-08-02 5 views
12

MYTABLE 테이블에서 x 일보다 오래된 행을 모두 삭제하고 싶습니다. 열 SAVE_DATE Long은 행이 테이블에 삽입 된 시간입니다. x 일보다 오래된 행을 삭제합니다.

나는이 시도하지만 분명히 그것은 내 모든 행 삭제 :

은 어떤 문제가
long daysInMiliSec = new Date().getTime() - X 
      * (24L * 60L * 60L * 1000L); 
return db.delete(MYTABLE , SAVE_DATE 
      " <= ?", new String[] { "" + daysInMiliSec } 

를?

나를 도와 주셔서 감사합니다. 그것은 구글 초보자를위한 좀 더 설명의 첫 번째 히트 이래로

String sql = "DELETE FROM myTable WHERE Save_Date <= date('now','-2 day')"; 
db.execSQL(sql); 

답변

26

2 일 이상의 데이터가 오래된 삭제됩니다 당신은 메인 프로그램에서 시간/날짜 기능이 필요하지 않습니다
는 sqlite DB에 액세스하는 데 사용하지만 sqlite 날짜 함수는 직접 사용하십시오.

은 당신과 나이에 대한 행 항목과 테이블을 만들 예를 들어 :

CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, text TEXT, age INTEGER) 

당신은 여기

INSERT INTO test (text, age) VALUES ("bla", datetime('now')) 

이 또한 당신을 드릴 것 때문에 내가 '날짜를'사용으로 쓰기 나중에 시간/분/초를 검색하십시오. '날짜'('지금')가 필요하지 않은 경우 충분합니다. 당신은 위의 제 '에 따라 웹 사이트에 그 가능성을 더 볼 수 있습니다

SELECT * FROM test WHERE age <= datetime('now', '-5 minutes') 

: https://www.sqlite.org/lang_datefunc.html

예를 5 분 동안 이전의 모든 선택하려면 : 여기

날짜 기능에 대한 설명입니다 수정 자 '입니다.

관련 문제