2013-08-28 2 views
1

테이블에서 다른 요일의 목록을 검색하려고합니다. 그들은 정수로 저장됩니다.일별 Sqlite 그룹

cal.getTime().getTime() 

는 1970 년 1 월 1 일이 Date 객체가 나타내는 0시 0 분 0 초 GMT 이후의 밀리 초 수를 반환합니다.

내가

select strftime('%d-%m-%Y'," + date_clmn + ") from " 
       + TABLE_NAME +" group by strftime('%d-%m-%Y'," + date_clmn + ")" 

다음을 작성했습니다 무엇, 나는이 값 toString을 변환합니다. 내가 무엇을 얻을 :

24-11--471 

그리고 그 후 나는 아무 것도 얻을

strftime('%d-%m-%Y',date_clmn)=24-11--471 

으로 쿼리를 만들려고 할 때.

무엇이 잘못 되었나요?

이런 식으로 시간대 문제가 발생합니까?

다른 방법으로 만들면 나는 당신을 듣게되어 기쁩니다.

미리 감사드립니다.

UPDATE

Tried "date(" + date_clmn+ ",'unixepoch')" 
now retrieved value is "1970-01-01" 
+1

나는 comparisson wou을 생각합니다. 'strftime ('% d- % m- % Y ', date_clmn) = '24 -11--471'이됩니다. '24-11--471'을 작은 따옴표로 묶으십시오. 왜냐하면 두 문자열을 비교해야하고 sqlite가이 유형 불일치를 감지하지 못하기 때문에 심지어 쿼리가 완벽하게 실행되지만 물론 어떤 행도 검색하지 않기 때문입니다. 그것이 작동하고 당신이 동의하는 경우에 나는 대답으로 이것을 복종시킬 수있다. – dic19

+1

고마워, 거기에도 있었어[email protected] dic19 – userqwerty1

+0

안녕하세요 :) – dic19

답변

2

당신이 당신의 테이블에 날짜를 저장하지 않기 때문에, 당신은 당신의 분야를 변경해야합니다. 다음 코드로 시도하십시오 :

"select strftime('%d-%m-%Y'," + date_clmn + "/1000,'unixepoch') from " 
+ TABLE_NAME +" group by strftime('%d-%m-%Y'," + date_clmn + "/1000,'unixepoch')" 
+0

고마워요, 작동합니다! – userqwerty1

2

누군가에게 도움이 될 수 있다고 생각하기 때문에 이것을 추가하고 있습니다. as per documentationstrftime()은 지정된 형식으로 문자열 날짜를 반환합니다. 이 절의 그래서 :

strftime('%d-%m-%Y',date_clmn) = 24-11--471 
    ^       ^
    string       this expression returns an integer 

SQLite는 감지하지 않습니다 여기에 형식 불일치가있다. 쿼리조차도 완벽하게 실행됩니다 (테스트를 거쳐 오류없이 실행됩니다). 물론 쿼리를 실행하면 아무런 행도 검색되지 않습니다.

오른쪽 comparisson은 다음과 같습니다

strftime('%d-%m-%Y',date_clmn) = '24-11--471' 

테스트 : 여기이 동작 테스트 코드의 작은 조각이다 :

CREATE TABLE dateTest(myDate VARCHAR); 
INSERT INTO dateTest(myDate) VALUES ('2013-08-29 18:57:00'); 
SELECT strftime('%Y-%m-%d',myDate) AS formatted, myDate FROM dateTest WHERE strftime('%Y-%m-%d') = 2013-08-29; /* this won't retrieve any row */ 
SELECT strftime('%Y-%m-%d',myDate) AS formatted, myDate FROM dateTest WHERE strftime('%Y-%m-%d') = '2013-08-29'; /* this will retrieve '2013-08-29 | '2013-08-29 18:57:00' */ 

을 그리고 여기에 출력입니다 :

enter image description here