2012-05-24 152 views
2

可能重复:
Sort the date in Sqlite database如何根据日期对sqlite数据库进行排序?

我创建使用SQLite数据库的iPhone应用程序。在这我有一个表,其中包含三列,一列是“ReleaseDate”与DATE数据类型。我想根据此列中的日期对数据库进行排序。我使用了下面的代码。 插入,

NSDateFormatter *format = [[NSDateFormatter alloc]init]; 
    [format setDateFormat:@"MM/dd/yyyy"]; 
    NSDate *dateFromString = [[NSDate alloc] init]; 
    dateFromString = [format dateFromString:date]; 
    [format release]; 
    NSTimeInterval timeInterval = [dateFromString timeIntervalSince1970]; 

    sqlite3_bind_double(insertStmt, 4, timeInterval); 

这里,“日期”是保存日期值的字符串值。现在,我如何从数据库的整个列中检索数据?我使用的查询是,

select * from ItemTable order by ReleaseDate desc 

但排序没有完成。

+0

FYI:如果你使用基金类型一路下跌的堆栈,你可以看看NSSortDescriptor。一般来说,这是排序结构化信息数组的好方法。 –

回答

0

使用这样的:从ItemTable ORDER/SELECT * BY RELEASEDATE ASC DESC

-1

当你插入数据使用下面的代码。

NSString *strTimeStamp = [NSString stringWithFormat:@"%lf",[[NSDate date] timeIntervalSince1970]]; 

将strTimeStamp插入数据库。

当你得到的数据,请使用以下功能

NSTimeInterval timeInterval= [self intervalBeforeDays:2]; 

NSString *query = [NSString stringWithFormat:@"Select * from pictures where date >= %lf",timeInterval]; 



- (NSTimeInterval)intervalBeforeDays:(NSInteger)day{ 
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
    NSDateComponents *dateComponents = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:[NSDate date]]; 
    NSInteger iday = [dateComponents day]; 
    NSInteger iEarlierDay = iday -day; 
    dateComponents.day = iEarlierDay; 
    NSDate *date = [gregorian dateFromComponents:dateComponents]; 
    NSTimeInterval interval = [date timeIntervalSince1970]; 
    [gregorian release]; 
    return interval; 

} 
相关问题