2012-03-13 9 views
0

내 안드로이드 OS의 날짜를 내 sqlite 데이터베이스에 저장된 날짜와 전화로 비교하는 데 어려움이 있습니다. 목표는 다음과 같습니다. 오늘보다 일찍 모든 행을 선택하고 싶습니다.android : 데이터베이스와 날짜를 비교하십시오.

그건 내가 날짜를 얻는 방법 - 그 공원 작동 :

android.text.format.DateFormat df = new android.text.format.DateFormat(); 
    String datum = df.format("yyyy-MM-dd", new java.util.Date()).toString(); 

을 내가 텍스트로 날짜를 저장 한 내 데이터베이스의 각 행에 대해. 예 : 2012-01-31 (yyyy-MM-dd).

나는 "smaller than"(<) 연산자로 작업 할 수 있다고 생각했는데, 그건 differt 프로젝트에서 작동했습니다. 그러나 정확한 날짜를 얻지 못합니다.

아이디어가 있으십니까? 아니면 어떻게 그 문제에 접근하겠습니까?

미리 감사드립니다. 마르코

+2

날짜를 길게 저장하면 더 좋고 쉽게 비교할 수 있습니다. – njzk2

+0

날짜 또는 긴 데이터 형식을 사용하십시오. – Eric

+0

@ 에릭 (Eric) 나는 긴 형식이 더 이해하기 쉽다는 것에 동의하지만 그가 사용하고있는 형식 문자열을 감안할 때 문자열 비교는 잘 작동 할 것입니다. 다른 사람들이 비슷한 "timestamp"필드에 약간의 쓰레기 데이터를 가지고있는 경우와 같이, 그렇게 보이지 않는 경우 여기에있는 다른 것들이 거의 확실합니다. –

답변

0

나를 위해 잘 작동합니다.

$ sqlite3 
sqlite> CREATE TABLE date_test(date DATE); 
sqlite> INSERT INTO date_test VALUES('2012-01-01'); 
sqlite> INSERT INTO date_test VALUES('2012-02-01'); 
sqlite> INSERT INTO date_test VALUES('2012-03-01'); 
sqlite> SELECT date FROM date_test WHERE date < '2012-02-15'; 
2012-01-01 
2012-02-01 

동작이 예상과 다른 특정 테스트 데이터를 제공 할 수 있습니까?

+0

아. 그것은 이해가되지 않습니다 - 이제는 그렇습니다. DB에 저장된 가비지 데이터를 받았습니다. 필자는 단 하나의 형식으로 새로운 데이터베이스를 채웠으며 이제는 작동합니다. 당신의 통찰력에 감사드립니다! – Marco

관련 문제