2013-02-24 47 views
0

iam開發一個應用程序。在那保存了數據庫的數據類型整數,測試和日期。所以現在我試圖從數據庫中使用下面的查詢來獲取數據。使用日期數據類型列獲取數據庫中的數據。

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

日期包含與NSDate的format.When我運行這個一個我沒有得到data.So的單行如何使用日期值檢索數據的數據。(日期列數據格式MM- DD-YY(12年1月22日))。

回答

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

寫入查詢的格式是正確的或不? – 2013-02-24 14:56:30

+0

日期如何存儲在數據庫中?什麼格式(yyyy-mm-dd)?另外,日期是一個NSDate? – Ares 2013-02-24 19:17:30

+0

在數據庫中,日期以MM-dd-yy格式存儲,並且該列數據類型爲Date。 – 2013-02-25 02:13:23

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