2012-05-24 150 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; 

} 
相關問題