2013-02-14 2 views
0

저는 데이터베이스에서 정보를 가져 와서 저장하는 안드로이드 프로젝트를 작업 중입니다. (자바 측은 SqLite를 사용합니다).SqLite는 날짜 형식을 포함하는 요청을 어떻게 계산합니까?

String Query = 

"SELECT xxx.APP_ID " + "FROM xxx INNER JOIN yyy ON 
xxx.APP_ID = yyy.APP_ID " + 

"WHERE date('"+mydate+"') BETWEEN date(xxx.APP_DATEBEGIN) AND date(xxx.APP_DATEEND) 
" + 

"AND (yyy.USR_ID = " + myid + ") " + 

"ORDER BY xxx.APP_DATEBEGIN"; 

mydate 형식은 다음과 같습니다 : YYYY-MM-DD HH:MM:SS 데이터베이스의 날짜와 같은 형식 인

여기 내 요청입니다.

convert (와)과 같은 요청 (SQL 서버 측)을 실행합니다. SqLite에서는 키워드 date을 사용할 수 없습니다.

다른 방법이 있습니까?

+0

예, 키워드 date()가 있습니다. 모든 날짜와 시간 함수를 다음에서 볼 수 있습니다. (http://www.sqlite.org/lang_datefunc.html) 이 링크는 날짜 문제에 매우 유용합니다. – Safime

답변

1

SQLite에서는 날짜를 나타내는 함수를 사용할 필요가 없습니다. 날짜가 SQLFiddle demo 인 일반 문자열을 사용하면됩니다.

documentation와 일치한다 :

SQLite는 날짜 및/또는 시간을 저장하기 위해 따로 저장 클래스가 없습니다. ISO8601의 문자열로

  • TEXT ("YYYY-MM-DD HH : MM : 대신, SQLite는에 내장 된 날짜 및 시간 함수는 TEXT, REAL, 또는 INTEGER 값으로 날짜와 시간을 저장할 수있는 SS .SSS ").
  • REAL 줄리안 일 수, 4714 년 11 월 24 일 그리니치 정오 이후의 일 수. 프리 글리 프릭 그레고리력에 따르면
  • INTEGER는 1970 년 1 월 1 일 00:00:00 UTC 이후의 초 단위 시간 (Unix Time)입니다. 여기
1

: 당신이 데이트 형식에 대한 옵션을 볼 수 있습니다 1.2 절에

http://www.sqlite.org/datatype3.html

개인적으로

내가 사용 좋아 (I 또한 북마크 매우 유용으로이 사이트를 제안) UNIX UTC 시간 시스템은>, < 및 =을 사용하여 다른 날짜와 비교하기 쉽기 때문에 지역화에 신경 쓰지 않으므로 보편적 인 시스템입니다.

관련 문제