2016-09-16 2 views
0

나는 현재 날짜에 따라 날짜에 따라 데이터베이스에서 데이터를 검색합니다. 17/09/2016 이 날짜에 저장되는 데이터는 문제점을 보여 주며 하나의 데이터 만 표시하고 데이터베이스에있는 많은 데이터가 있으면이 문제에서 벗어날 수 있습니다. 바보 같은 질문이지만 2 일에서 3 일 사이에 붙어 있습니다.날짜에 따라 sqlite에서 모든 데이터를 다시 얻는 방법

sqLiteDatabase.rawQuery("SELECT * from mytable where Date = (select max(Date) from mytable WHERE Date < DATE('now'));", null); 

    Cursor c = sqLiteDatabase.rawQuery("SELECT * from BluetoothDevice WHERE Date = date('now');", null); 

    while (c.moveToNext()) { 
     Date date = new Date(); 
     date.setTime(Long.valueOf(c.getString(c.getColumnIndex("Date")))); 
     result.add(
       new BluetoothDevice(
         c.getString(c.getColumnIndex("Device")), 
         c.getString(c.getColumnIndex("Address")), 
         date 

       ) 
     ); 
    } 
    c.close(); 
    return result; 
} 
+0

행을 읽는 코드를 표시하십시오. –

+0

editd 내 질문 – Badprince

+0

항상 날짜를 저장하십시오! – XxGoliathusxX

답변

0

이 쿼리는 오늘의 데이터를 검색하지 않습니다. date('now')은 항상 지금이므로 Sep 16, 2016입니다. 그런 다음 BEFORE (<)를 쿼리하면 Sep 15, 2016 이하의 레코드 만 얻을 수 있습니다. 이전 날짜의 MAX를 취합니다.이 숫자는 Sep 15보다 높을 수 없으므로 (사용자의 where이 지정했기 때문에) 평등 테스트를 사용하십시오.

그래서 효과적으로 9 월 16 일에 대한 쿼리를 위해, 당신은 왜 당신은 그냥

SELECT ... WHERE date = date('now') 

을 가질 수 where date = 'Sep 15'

를 실행?

+0

나는 이것을 시도했지만 아무 것도 보이지 않는다. – Badprince

+1

어떻게 당신의 날짜를 저장하고 있습니까? 실제 날짜/날짜/시간 필드, 또는 문자열로? 문자열이라면'date '('now')'erturns와 같은 형식으로되어 있어야합니다. ''sep 16, 2016 '=='2016-09-16 '은 문자열 비교 표준에 위배되지만 인간 표준에 의해 같은 날을 나타냅니다. –

+0

나는 datetime – Badprince

관련 문제