2017-11-19 8 views
1

현재 Android App에서 SQLite 데이터베이스에 타임 스탬프가 포함 된 값을 저장하고있는 Project에서 작업하고 있습니다. 시간 소인은 "yyyy-MM-dd HH : mm : ss"형식으로 "DATE ​​NOT NULL"유형으로 저장됩니다. (예 : ID : 1 | Timestamp : 2017-11-19 21:05:04 | 값 : 1234)지난 60 분 동안의 모든 값을 계산하십시오.

일부 계산에서는 현재 시간 이후로 마지막 60 분 내에 생성/저장되는 항목 수를 선택해야합니다.

SELECT Count(*) FROM TableName WHERE Timestamp > current_timestamp - 60 Minutes 

당신이 날 도와 줄 수 :

그래서 내가 뭔가를해야합니까? 한가지 문제는 타임 스탬프가 저장되는 방식을 바꿀 수 없다는 것입니다.

비슷한 항목이 많은 항목을 검색했지만 작동하지는 않습니다.

읽고 도와 주셔서 감사합니다. cold1ce

답변

1

저장된 시간 소인은 sqlite 처리에 적합합니다.

날짜 계산에 사용할 때 datetime()을 적용하면 안전 할 수 있습니다. 귀하의 질문에 관해서는

, 당신이 약하므로 그것을 할 수 있습니다

어떤 방식으로 작동하는 것 같다
WHERE datetime(timestamp) > datetime(current_timestamp, '-60 minutes') 
+0

. 나는 견고성을 시험하고 피드백을 줄 것이다. 감사합니다 gnudiff! – cold1ce

+0

아주 잘 작동합니다. 단, 현재 시간 기록은 시간 이동으로 인해 1 시간 잘못되었습니다. 하지만 다른 60 분을 빼서 ​​고쳤습니다. 도와 줘서 고마워! – cold1ce

+0

@ cold1ce 문제가 없습니다. 시간과 관련하여 sqlite는 GMT로 저장하고 항상 예상합니다. 로컬 TZ에서 테이블 값이 (잘 될 수있는 것처럼) 있다면 datetime (타임 스탬프, '-60 분', 'localtime')을 시도해 볼 수 있습니다. – Gnudiff