2011-11-11 4 views
3

SQLite에서 날짜 비교를 위해 현재 주를 얻으려고합니다. 나는 지난 달, 작년, 오늘, 어제에 아무 문제가 없지만 ... 이번 주에 해결책을 찾지 못했습니다.SQLite : 현재 주 취득

SELECT tastings.* FROM tastings 
WHERE (DATE(tastings.date) > DATE('now','weekday 1','+ 7 days')) 

당신이 날 도와 줄 수 :

내가 좋아하는 것들을 많이 시도? 감사.

+4

일주일을 의미합니까? % W 주와 마찬가지로 00-53? –

답변

0

tastings.date 열에 저장된 내용은 무엇입니까? SQLite는 "timestamp"타입 친 화성을 가지고 있지 않으므로 아마도 Text (날짜 표현) 또는 정수 (율리우스 요일, 시대 ...)를 저장합니다.

모든 시간 및 날짜 함수는 유효한 time string을 기대하고 그 시간을 변환합니다 문자열을 다른 문자열 형식으로 변환합니다. tastings.date는 주 번호가 포함 된 경우 다음 사용

AND cast(tastings.date AS TEXT) = strftime('%W','now') 
0

이렇게하면 주간을 사용하여 2 개의 날짜를 비교하는 데 도움이됩니다.

AND (strftime('%W', tastings.date) = strftime('%W', 'now')) 

감사합니다.

3

이 코드는 당신에게 일주일의 첫날이 월요일 인 주 번호를 제공합니다. 또한 연중 마지막 주와 첫 주에 잘 작동합니다. 나는 당신이 두 날짜를 비교하려는 생각

strftime('%W', 'now', 'localtime', 'weekday 0', '-6 days') 
+0

당신은 생명을 구하는 사람입니다. PROD에서 'DATE ('now ','localtime ','weekday 1 ','- 7 days ')'를 사용하고 있었기 때문에 앱이 미쳐 버렸습니다. – faizal

0

,

_recordDate TEXT 당신이 코드 아래 사용할 수 있습니다 이번 주에 그 기록에 이름을하려는 경우 테이블이 _testTbl라는 이름의 3 열 _id INTEGER, _name TEXT을 가지고 있다고 가정 :

SELECT * FROM _testTbl 
WHERE _recordDate > datetime('now', 'start of day', 'weekday 6', '-7 day') 

주 토요일 (일요일 0, 월요일 1, 7, ..., 토요일) 이번주 개시는 이 t-SQL 즉 :

datetime은 sqlite 날짜 및 시간 함수입니다.

  • 첫번째 파라미터는 시간이 주어진다 'now' 현재 시간을 의미한다.
  • 두 번째 매개 변수는 시작하는 데 시간이 걸립니다.
  • 세 번째 매개 변수는 다음 (이 경우에는 토요일)까지 걸릴 시간입니다.
  • 네 번째 매개 변수는 주 시작에 걸리는 시간입니다.