2010-04-01 7 views
0

BONJOUR Je suis en train d'insérer la date actuelle dans ma table de base de données j'ai une colonne dateVisited de type datetimecomment insérer NSDate dans sqlite?

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 !"); 
} 

l'instruction s'exécute avec succès mais quand je vais réellement et vérifier la table, il dit date non valide ... Je ne sais pas pourquoi comme je l'ai imprimé sqlstr i copier coller de la console et le coller dans sqlite et le lancer manuellement il fonctionne parfaitement bien et a la date réelle .... quelqu'un peut-il me guider où je me trompe: S ....... s'il vous plaît

+0

pouvez vous lancer 'sqlite> .schema AnwaltHistory' et coller la sortie? – falconcreek

+0

lorsque je lance manuellement la requête sur l'interface db Insérer dans les valeurs AnwaltHistory (id, dateVisited) (87403, datetime()) ou Insérer dans les valeurs AnwaltHistory (id, dateVisited) (123,2010/04/07 01: 49:55) il est inséré bien (les deux requêtes ci-dessus sont le résultat de mon sqlStr) mais ne fonctionne pas automatisé, fonctionne bien en mode manuel. – yunas

+0

sqlite n'a pas de type datetime. quel est le schéma de la table AnwaltHistory? – falconcreek

Répondre

0

Pourquoi ne pas utiliser:

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

Merci beaucoup pour votre réponse. J'ai essayé sqlStr = [NSString stringWithFormat: Lors du débogage j'ai compris que sqlStr est invalide. et j'ai utilisé NSLog pour voir ce qui est dans sqlStr. Insérer dans les valeurs AnwaltHistory (id, dateVisited) (87403, datetime()) ce qui est bien et l'instruction exécutée avec succès mais quand j'explore la db il affiche l'ID mais le temps est invalide à nouveau puis j'ai couru le sqlStr manuellement il est inséré parfaitement sans erreur. où je me trompe: S Et désolé pour la réponse tardive – yunas

0

Vous pouvez essayer ceci:

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