【问题标题】:Getting the data from database using Date datatype column.使用 Date 数据类型列从数据库中获取数据。
【发布时间】:2013-02-24 06:41:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: objective-c nsdate


    【解决方案1】:

    你需要一个 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]];
    

    【讨论】:

    • 日期如何存储在您的数据库中?什么格式(yyyy-mm-dd)?另外,日期是 NSDate 吗?
    • IN数据库,日期以MM-dd-yy格式存储。该列数据类型为Date。
    【解决方案2】:

    这工作正常。

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

    【讨论】:

      猜你喜欢
      • 2011-09-11
      • 2018-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      相关资源
      最近更新 更多