我通过 FMDB 执行的任何包含 NSDates 的查询都会执行,但不会返回结果集或对数据库进行编辑。我在 ios 4.3 模拟器中工作。其他未规定日期的查询正确执行。这是我使用的代码的摘录:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd hh-mm-ss"];
NSDate *start = [dateFormatter dateFromString:@"2011-07-18 06:40:21" ];
NSDate *end = [dateFormatter dateFromString:@"2011-07-18 06:41:19"];
[dateFormatter release];
FMDatabase* db = [FMDatabase databaseWithPath:appDelegate.databasePath];
if (![db open]) {
NSLog(@"Could not open db.");
}
[db beginTransaction];
[db executeUpdate:@"delete from time_stamp_table where time_stamp >= ?
and time_stamp <= ?",start,end];
NSLog(@"Err %d: %@", [db lastErrorCode], [db lastErrorMessage]);
[db commit];
[db close];
因此,架构在 time_stamped_table 中声明了 time_stamp:
create table time_stamp_table{
id INTEGER PRIMARY KEY,
time_stamp DATETIME NOT NULL
}
当我在命令行的 sqlite3 中使用存储在模拟应用程序上下文中的数据库进行这些查询时,它们可以工作。是否有一些特殊的准备可以通过 NSDate 与我缺少的 FMDB 进行查询?