일부 데이터를 저장하는 데 SQLite를 사용하고 있으며 문자열을 사용하고 있으므로 날짜 개체를 SQLite 데이터베이스에 저장할 수 없다는 것을 알고 있습니다.SQLite에서 현재 날짜보다 이전 날짜를 테스트하는 방법
제 문제는 테이블 인 가장 빠른 날짜를 확인하고 싶습니다. 따라서 2011 년 1 월 4 일과 2013 년 4 월 5 일이었던 카드가 2 장있는 경우 2012 년 1 월 1 일이 이전 날짜이고 그 행을 반환한다는 것을 알고 싶습니다.
은 지금까지 나는이 개 솔루션으로 올라와있다 :
여러 쿼리를 나는 데이터베이스를 통해 반복에 의해 날짜 객체를 감소 성공적인 솔루션을 구현할 수 있었다
DB를에 1은 날짜와 일치하는 문자열로 사용됩니다. 가장 빠른 날짜를 찾기 전에 데이터베이스를 100 번 쿼리해야 할 수도 있습니다. 이런 식으로하는 것이 나쁜 습관입니까? 결과를 통해
반복은 또 다른 가능성은 테이블의 모든 플래시 카드의 결과 집합을 반복하는
설정이다. 그러나 이것은 2 개의 루프를 포함 할 것입니다. 하나는 테이블의 각 행을 반복하여 하나의 날짜를 줄이는 루프 안에 있습니다.
두 가지 모두 훌륭한 해결책이 아닙니다. 나는 누군가가 나를보다 효율적으로이 일을 도울 수 있을지 궁금해한다.
, 나는 선택하려고 해요된다 현재 날짜와의 차이가 가장 큰 행 : 'resultSet = statement.executeQuery ("SELECT MAX (날짜)"date ('interval')), id FROM flashcard "); 날짜와 상관없이 같은 행. 내가 뭘 잘못하고 있는지 설명해 주시겠습니까? –
@JoeDawtry 최소 날짜 만 원하는 것처럼 보입니다. ''SELECT MIN (date (date_column_name)) FROM flashcard ''를 실행하면 어떻게됩니까? –
오류가 내 대신에 테이블에 남은 행에 대한 null 값이 있습니다. 당신의 방법은 완벽하게 작동했습니다, 대단히 감사합니다! –