fmdb插入日期给出"无效日期"

Trj*_*Trj 0 objective-c fmdb ios

我正在尝试在我最新的ios项目中使用fmdb,到目前为止它运行得很好.但现在我正在尝试使用NSDate作为参数进行插入,并最终在我的sqlite数据库中存储为无效日期.我尝试了多种解决方案,但似乎没有任何效果.我究竟做错了什么?

[database executeUpdate:@"CREATE TABLE IF NOT EXISTS inspection (ID INTEGER PRIMARY KEY, result TEXT, date_of_inspection DATE, restaurant_id INTEGER"];

NSDate *today=[NSDate date];
[database executeUpdate:@"insert into inspection(id,result,date_of_inspection,restaurant_id) values(?,?,?,?)",[inspection valueForKey:@"id"], result, today, [restaurant valueForKey:@"id"],nil];
Run Code Online (Sandbox Code Playgroud)

数据库已填充,一切正常,但*#%除外!约会...... :)有什么不对?

小智 6

SQLite没有日期格式,因此FMDB希望将日期字段存储为浮点数/实数:

else if ([obj isKindOfClass:[NSDate class]]) {
    sqlite3_bind_double(pStmt, idx, [obj timeIntervalSince1970]);
}
Run Code Online (Sandbox Code Playgroud)

因此,请尝试使用该格式制作表格.