2010-04-01 60 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