Y a-t-il un moyen, dans sqlite, d'enregistrer automatiquement un horodatage dans la table chaque fois qu'un enregistrement a été créé que je peux ensuite saisir et enregistrer en tant que NSDate dans mon application? Ou devrais-je plutôt créer l'objet NSdate avec l'heure actuelle dans mon application iphone, puis l'insérer dans la base de données. Si c'est le cas? Quelle colonne doit être le type de données pour l'instant? un DATETIME?Type de données datetime sqlite avec iphone NSdate?
Répondre
Il n'y a pas de type de données TIMESTAMP
que vous pouvez utiliser dans SQLite, vous devrez donc insérer manuellement l'heure lorsque vous faites votre INSERT
. J'utilise le INTEGER
type de données dans la base de données, et convertir mon NSDate
en tant que tel:
sqlite3_bind_double(insert_statement, 1, [myDate timeIntervalSince1970]);
Et pour le récupérer de la DB:
myDate = [NSDate dateWithTimeIntervalSince1970:sqlite3_column_double(select_statement, 1)];
Ce que je fais est current_timestamp de l'utilisation SQLite (qui ressemble quelque chose comme ça: 2009-06-16 12:11:24). Pour ce faire, simplement définir le type de ligne de votre table qslite à
Data type: "DATETIME"
Allow null: NO
Default value: CURRENT_TIMESTAMP
Ensuite, utilisez une requête SQL comme ceci:
@"INSERT INTO 'scores' ('one', 'two', 'three') VALUES ('%d', '%d', '%d')"
ignorant la date, afin qu'il obtiendra automatiquement la valeur de l'heure actuelle.
Puis convertir en un NSDate vous pouvez utiliser un NSDateFormatter comme ceci:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //this is the sqlite's format
NSDate *date = [formatter dateFromString:score.datetime];
et maintenant vous avez cette date comme un objet NSDate. Il suffit de ne pas oublier de libérer le NSDateFormatter nous avons alloué :)
J'aime utiliser la fonction sqlite julianday(), comme:
insert into foo(currentDate) values (julianday('now'));
Ce serait une valeur de l'insertion de virgule flottante en foo.currentDate.
Vous pouvez également trouver quelques détails de cette question/réponse utile.
- 1. Type DATETIME d'Objective-C et sqlite
- 2. Problème avec le type de données DateTime
- 3. NSDate -dateWithNaturalLanguageString: sur iPhone?
- 4. Iphone type de données
- 5. iPhone - Base de données SQLite Lecture
- 6. Obtenir le mois de DATETIME dans sqlite
- 7. iPhone SDK: chargement UITableView de SQLite - tableau création de SQLite
- 8. Localisation de l'iPhone avec sqlite?
- 9. NSDate hors de portée
- 10. SQLite erreur iPhone,
- 11. Fusion et ajout de données avec SQLite
- 12. fuite de mémoire iphone avec uitableview et sqlite
- 13. Requête de données de base pour iPhone
- 14. format de date HTTP NSDate
- 15. Comment optimiser sqlite query avec dates & substr?
- 16. Description Chaîne de NSDate
- 17. Référence multiples tables sqlite sur iPhone?
- 18. Quel est l'équivalent de la fonction SQLite datetime dans PostgreSQL?
- 19. comportement SQLite sur INSERT sur iPhone
- 20. Iphone SQLite initialisation et la fermeture
- 21. Implémentation de développement iPhone: SQLite ou service Web
- 22. iPhone SDK: chargement UITableView à partir de SQLite
- 23. Utilisation de SQLITE avec VB6
- 24. UIDatePicker et NSDate
- 25. Où placer votre fichier de base de données SQLite dans une application iPhone?
- 26. Colonne DataTable avec type de données personnalisé
- 27. UIDatePicker et NSDate
- 28. émet NSDate et NSDateFormatter
- 29. Colonne XML typée avec l'élément DateTime - DateTime est convertie
- 30. Trier NSArray par NSDate, aujourd'hui
J'ai peur, ce qui est faux, il y a Datetime dans SQLite type de données. – Thiru