我正在开发一个应用程序。其中保存了数据类型为整数、测试和日期的数据库。所以现在我尝试使用以下查询从数据库中获取数据。
NSString *query = [NSString stringWithFormat:@"SELECT Sno,name FROM school where Date='%@'",date];.
日期包含 NSDate 格式的数据。当我运行这个时,我没有得到单行数据。那么如何使用该日期值检索数据。(日期列数据格式为 MM-dd-yy(01-22 -12))。
我正在开发一个应用程序。其中保存了数据类型为整数、测试和日期的数据库。所以现在我尝试使用以下查询从数据库中获取数据。
NSString *query = [NSString stringWithFormat:@"SELECT Sno,name FROM school where Date='%@'",date];.
日期包含 NSDate 格式的数据。当我运行这个时,我没有得到单行数据。那么如何使用该日期值检索数据。(日期列数据格式为 MM-dd-yy(01-22 -12))。
你需要一个 NSDateFormatter。
然后将日期格式化程序设置为数据库日期的格式。 此页面应该可以帮助您找到这种格式。
然后,对于您的查询,使用您的日期格式化程序 stringFromDate 方法,如下所示:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM-mm-yy"];
NSString *query = [NSString stringWithFormat:@"SELECT Sno,name FROM school where Date='%@'",[df stringFromDate:date]];
这工作正常。
1.创建表
FMDatabase *db = [FMDatabase databaseWithPath:[Utility getDatabasePath]];
[db open];
[db executeUpdate:@"create table if not exists UserTbl(eventname text,eventdate date)"];
FMResultSet *results = [db executeQuery:@"SELECT * FROM UserTbl"];
while([results next])
{
ReminderObject *Reminder = [[ReminderObject alloc] init];
Reminder.EventTitleString = [results stringForColumn:@"eventname"];
Reminder.EventDateString = [results stringForColumn:@"eventdate"];
[ReminderListArray addObject:Reminder];
}
[db close];
2.插入
FMDatabase *db = [FMDatabase databaseWithPath:[Utility getDatabasePath]];
[db open];
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat: @"dd-MM-yyyy"];
NSString *dateString=[dateFormat stringFromDate:today];
dateFormat.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
dateFormat.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSLog(@".........DateString...%@",dateString);
//NSString *query = [NSString stringWithFormat: @"INSERT INTO user (edited) VALUES (\"%@\")", dateString];
BOOL success = [db executeUpdate:@"insert into UserTbl(eventname,eventdate) values(?,?);",
Reminder.EventTitleString,dateString, nil];
[db close];