使用Date数据类型列从数据库获取数据。

时间:2013-02-24 06:41:30

标签: objective-c nsdate

我正在开发一个应用程序。用数据类型整数,测试和日期保存数据库。所以我现在尝试使用以下查询从数据库中获取数据。

  NSString *query = [NSString stringWithFormat:@"SELECT Sno,name FROM school where Date='%@'",date];.

日期包含NSDate格式的数据。当我运行这个时,我没有获得单行数据。那么如何使用该日期值检索数据。(日期列数据格式为MM-dd-yy( 12年1月22日))。

2 个答案:

答案 0 :(得分:0)

您需要一个NSDateFormatter。

然后将日期格式化程序设置为数据库日期的格式。 This page应该可以帮助您找到这样的格式。

然后,对于您的查询,请使用您的日期格式化程序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 :(得分:0)

这很好。

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];