0
sqlite3에서 datetimes를 비교하는 데 문제가 있습니다. 내 Mac에서 SQL 쿼리를 실행할 때 작동합니다. 그러나 iPhone에서는 정확히 동일한 쿼리가 실패합니다.sqlite3 datetime이 iPhone에서 제대로 작동하지 않습니다.
INSERT OR IGNORE INTO `Artists` (`id`,`name`) VALUES ('1','Justin');
I가 업데이트되지 않은 작가의 수를 찾기 위해 노력하고있다 :
CREATE TABLE IF NOT EXISTS `Artists` (
`id` int(11) NOT NULL PRIMARY KEY,
`name` varchar(256) NOT NULL,
`lastUpdate` date NOT NULL default CURRENT_TIMESTAMP ,
...
...
);
내가 가진 예술가를 삽입 할 수 있습니다 다음과 같이
은 내가 sqlite3를 테이블 설정을 가지고 지난 2 초 (짧게 유지) :SELECT COUNT(*) FROM `Artists` WHERE `id` = ? AND `lastUpdate` < datetime('now','-2 seconds');
iPhone에서이 값은 0을 반환합니다. PC에서는 1을 반환합니다. 나는 그 값이 1이 될 것으로 기대하고있다. 그 차이점은 무엇인가?
-(BOOL) artistNeedsUpdating:(int)artistId
{
[dbLock lock];
BOOL result = NO;
sqlite3_stmt *statement;
const char* query = "SELECT COUNT(*) FROM `Artists` WHERE `id` = ? AND `lastUpdate` < datetime('now','-2 seconds');";
if(sqlite3_prepare_v2(database, query, -1, &statement, NULL) == SQLITE_OK){
sqlite3_bind_int(statement, 1, artistId);
if(sqlite3_step(statement) == SQLITE_ROW){
if(sqlite3_column_int(statement, 0) > 0) // If 0, then we don't need to update
result = YES;
}
sqlite3_finalize(statement);
}
[dbLock unlock];
return result;
}
나는 그것이 하나 개의 플랫폼에서 작동하지만 다른, 사람이 어떤 아이디어를 가지고하지 않습니다 이유에 혼란 스러워요 : 나는 의하여 값을 검색입니까?
는 내 실수였다, 저스틴