在我的sqlite数据库中,我有一个名为datekey的列,类型为TIMESTAMP。
我如何匹配两个时间戳?
我正在使用它:
NSString *Sql =@"SELECT ZTIMESLOT,ZAGENDA1,ZAGENDA2 FROM tbl_agenda where tbl_agenda.ZDATEKEY=%d";
NSString *sqlFormated = [NSString stringWithFormat:Sql,date];
其中date的类型为NSDate。
但是我可以在我的数据库中看到26 feb的时间戳值是1298678400,这是正确的,但是当我尝试与上面的源代码匹配时,日期值变为78756944,这是完全错误的比较。
请帮忙
我的完整代码
-(NSMutableArray*)getAgendaDetail:(NSDate*)date
{
NSMutableArray *DateArr=[[NSMutableArray alloc]init];
sqlite3 *database;
@try
{
DBSettings *dbSettings = [[DBSettings alloc]init];
[dbSettings checkAndCreateDatabase];
DatabaseName=dbSettings.DBName;
DatabasePath=dbSettings.DBPath;
[dbSettings release];
if(sqlite3_open([DatabasePath UTF8String], &database) == SQLITE_OK) {
// Setup the SQL Statement and compile it for faster access
const char *sqlStatement;
//NSString *Sql = @"SELECT * FROM song_info where id_song=%d" ;
NSString *Sql =@"SELECT ZTIMESLOT,ZAGENDA1,ZAGENDA2 FROM tbl_agenda where tbl_agenda.ZDATEKEY=%lu";
NSString *sqlFormated = [NSString stringWithFormat:Sql,date];
sqlStatement=[sqlFormated UTF8String];
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
while(sqlite3_step(compiledStatement) == SQLITE_ROW)
{
---------------------------
与数据库值
相比,sqlFormatted的值完全错误答案 0 :(得分:1)
如果是无符号整数,日期或时间戳,则应使用%lu,如果是NSTimeInterval,则应使用%f作为NSTimeInterval是双精度。