2013-03-04 3 views
0

나는 안드로이드 응용 프로그램을 개발 중입니다. 내 응용 프로그램 테이블 중 하나는 열 이름으로 "foo_date"있습니다. 데이터 유형은 TEXT입니다. 나는SQLite 데이터베이스에서 주간 날짜를 얻는 방법

primary key | foo_date | foo_value 
-------------------------------------- 
1    2013-3-1 100 

2    2013-3-2 2 

3    2013-3-4 100 

4    2013-3-3 1000 

내 요구 사항은 현재 주에 대한 데이터 (2013년 3월 10일에 즉. 2013년 3월 4일)를 얻을 수 있습니다 내 테이블에 다음과 같은 데이터를 가지고있다. 내가 쿼리 아래에 쓸 때, 나는 그것이 현재 주에 대한 모든 데이터를 포함하도록 3

select * from foo_tbl where foo_date between '2013-3-4' and '2013-3-10'; 

가 어떻게 sqlite 쿼리를 작성 할 행 번호를 제외한 모든 데이터는 무엇입니까?

Thansk 들은 Chintan

+0

또한 DB에 주 번호를 저장하면 많은 도움이되었습니다. –

+0

현재 사용중인 쿼리를 게시 할 수 있습니까? –

+0

나는 아래의 쿼리를 시도했지만 그것은 내가 찾고있는 결과를주지 않는다. – Chintan

답변

0

귀하의 문제가 쉽게 비교 할 수없는 형식으로 날짜를 저장 한 것입니다; 문자 14 앞에 오므로 2013-3-102013-3-4보다 작습니다.

documented과 같이 ISO 날짜 형식 yyyy-mm-dd을 사용해야합니다.

SELECT * FROM foo WHERE foo_date BETWEEN '2013-03-04' AND '2013-03-10' 

또는 주 계산하는 date function를 사용 :

SELECT * FROM foo WHERE strftime('%W', foo_date) = '09' 
+0

도움 주셔서 대단히 감사합니다 !! :) 나는 형식을 "yyyy-mm-dd"로 변경했으며 현재 작동 중입니다. – Chintan

0

첫째, 표준 SQLite는 시간 문자열 형식으로 날짜를 저장 상수 필드 크기로, 당신은 작업 문자열 비교하여 쿼리를 사용할 수 있습니다 (예 : YYYY-MM-DD). 다음, 당신은이를 사용할 수 있습니다

select * from foo where strftime('%W', foo_date) == strftime('%W', 'now') 

지금 같은 주 수로 행을 선택할 수 있습니다.

관련 문제