2010-04-01 37 views
0

你好,我想在我的數據庫表 中插入當前日期我有datetime類型如何在sqlite中插入NSDate?

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy/MM/dd HH:mm:ss"]; //this is the sqlite's format 
NSDate *stringTime = [NSDate date]; 
NSString *formattedDateStringTime = [formatter stringFromDate:stringTime]; 

sqlStr = [NSString stringWithFormat:@"Insert into AnwaltHistory (id,dateVisited) values (%d,'%@')",Id formattedDateStringTime]; 

NSLog(@"%@",sqlStr); 
BOOL Res = [appDelegate InsUpdateDelData: sqlStr]; 
if (Res) 
{ 
    NSLog(@"The Following instrunction is excuted successfully !"); 
} 
else 
{ 
    NSLog(@"The Following instrunction Failed to execute !"); 
} 

語句成功執行的列dateVisited但是當我真正去檢查表,它說無效的日期...我不知道爲什麼 因爲我已經打印了sqlstr我複製粘貼從控制檯,並將其粘貼在sqlite中,並手動運行它運行完全正常,並有實際的日期.... 可以任何一個指導我,我誤以爲:S ....... 請

+0

,可以在運行 '源碼> .schema AnwaltHistory' 並粘貼輸出? – falconcreek 2010-04-01 17:34:31

+0

當我自己在db界面上手動運行查詢時 插入到AnwaltHistory(id,dateVisited)值(87403,datetime()) 或 插入到AnwaltHistory(id,dateVisited)值(123,2010/04/07 01: 49:55) 它插入正常(以上兩個查詢是我的sqlStr的結果),但不工作自動化,工作正常,而手動。 – yunas 2010-04-07 08:51:15

+0

sqlite沒有日期時間類型。 AnwaltHistory表格的模式是什麼? – falconcreek 2010-04-26 14:34:24

回答

0

爲什麼不使用:

"Insert into AnwaltHistory (id,dateVisited) values (%d,datetime())",Id 
+0

非常感謝您的回覆。我試過 sqlStr = [NSString stringWithFormat:@「Insert into AnwaltHistory(id,dateVisited)values(%d,datetime())」,Id]; 在調試時我發現它說sqlStr是無效的。 和我使用NSLog查看sqlStr中的內容。 插入AnwaltHistory(id,dateVisited)值(87403,datetime()) 這是罰款和語句執行成功 ,但當我探索數據庫它顯示ID,但時間無效 然後我運行sqlStr手動它插入完美無誤。 我錯在哪裏:S 對於遲到的回覆感到抱歉 – yunas 2010-04-07 08:41:22

0

你可以試試這個:

double dateVisited = [[NSDate date] timeIntervalSince1970]; //now 
// save dateVisited to your 'dateVisited' field