我正在创建一个使用SQLite数据库的iPhone应用程序。在这里,我有一个包含三列的表,一列是带有DATE
数据类型的“ReleaseDate”。我想根据此列中的日期对数据库进行排序。我使用了以下代码。
插入,
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);
这里,'date'是一个包含日期值的字符串值。现在,如何从数据库中的整列中检索数据?我使用的查询是,
select * from ItemTable order by ReleaseDate desc
但未完成排序。
答案 0 :(得分:2)
SQLite中应该有一个名为DateTime的日期格式。尝试将日期格式化为该日期而不是字符串。
答案 1 :(得分:0)
使用如下:select * from ItemTable ORDER BY ReleaseDate ASC/DESC
答案 2 :(得分:-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;
}