sqlite3日期时间在iPhone上无法正常运行

sqlite3日期时间在iPhone上无法正常运行,sql,objective-c,iphone,sqlite,Sql,Objective C,Iphone,Sqlite,我很难让sqlite3在日期时间之间进行比较。在我的mac电脑上,当我运行sql查询时,它工作正常。然而,在iPhone上,完全相同的查询失败 我有一个sqlite3表设置,如下所示: 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在日期时间之间进行比较。在我的mac电脑上,当我运行sql查询时,它工作正常。然而,在iPhone上,完全相同的查询失败

我有一个sqlite3表设置,如下所示:

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 ,
...
...
);
我可以插入具有以下内容的艺术家:

INSERT OR IGNORE INTO `Artists` (`id`,`name`) VALUES ('1','Justin');
我正在尝试查找过去2秒钟内未更新的艺术家数量(保持简短):

从'Artists'中选择COUNT(*),其中'id`=?和'lastUpdate`
在iPhone上,返回0。在我的电脑上,它返回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;
}
-(BOOL)艺人需要支持:(int)艺人ID
{
[dbLock-lock];
BOOL结果=否;
sqlite3_stmt*语句;
const char*query=“从'Artists'中选择COUNT(*),其中'id`=?和'lastUpdate`0)//如果为0,则不需要更新
结果=是;
}
sqlite3_最终确定(声明);
}
[dbLock unlock];
返回结果;
}
我不明白为什么它在一个平台上工作,而在另一个平台上却不工作,有人有什么想法吗

谢谢,,
贾斯汀

别担心,那是我的错

我在处理完后正在更新行

UPDATE `Artists` SET `lastUpdate`='CURRENT_TIMESTAMP';
当它应该是:

UPDATE `Artists` SET `lastUpdate`=CURRENT_TIMESTAMP;
UPDATE `Artists` SET `lastUpdate`=CURRENT_TIMESTAMP;