2012-04-23 7 views
1

"수정 된"열이있는 안드로이드 애플 리케이션에 SQLite 테이블이 있습니다. 기본적으로 현재 행이 처음 삽입되거나 업데이트 된 시점 (날짜 및 시간)을 저장합니다.안드로이드에서 현재 날짜 시간으로 sqlite 열 업데이트

안드로이드에서 update() SQLite DB의 기능을 사용하면 ContentValues 매개 변수에 datetime 값을 저장하는 방법을 알 수 없습니다.

execSql() 메서드를 사용하는 경우 DATETIME() SQL 함수를 사용하여 현재 시간을 "MODIFIED"열로 설정할 수 있습니다. 그러나이 함수에는 반환 값이 없습니다. 업데이트가 성공했는지 여부는 알 수 없습니다.

의견이있는 사람은 누구입니까?

ContentValues values = new ContentValues(); 
values.put("modified", currentTime); 
db.update("table", values, "_id = XXX", null); 

당신이 행을 업데이트하는 데 사용할 조건 _id = XXX 교체 :

답변

1

또 다른 방법은 SQLite는 자체 각각 'UPDATE'에 자동으로 수정 된 업데이트하는 '트리거'를 만드는 것입니다 read about it here.

+0

이것이 제가 지금 시도하고있는 것입니다. 이것은 더 적절하게 보입니다. –

1

당신은 뭔가를해야합니다. Update 메서드는 업데이트 된 행 수를 반환합니다.

또한 DATETIME 대신 정수를 사용할 수 있습니다 (실제 sqlite http://www.sqlite.org/datatype3.html에 존재하지 않으므로). System.currentTimeMillis()currentTime으로 전달하십시오.

+0

"수정 된"의 초기 값이 형식 'YYYY-MM-DD HH이다 : MM : SS' 그래서'System.currentTimeMillis()'로 업데이트하면 형식이 달라지며 order by 절이 작동하지 않습니다. –

+0

그런 다음 해당 형식을 사용하십시오. 무엇이 문제입니까? 'SimpleDateFormat' 클래스를 살펴보십시오;) – Cristian

관련 문제