3 votes

Stockage des dates et calcul de l'âge dans SQLite

Dans mon programme, je dois enregistrer les dates d'anniversaire des personnes dans une base de données sqlite. Ensuite, dans le programme, je dois afficher la date d'anniversaire ainsi que l'âge.

Existe-t-il une méthode spéciale pour enregistrer les dates dans une colonne ou dois-je les enregistrer séparément jour, mois et année.

Mon autre question est de savoir comment obtenir leur âge avec précision en années, mois et jours. Est-il possible de le faire avec une fonction quelconque.

4voto

Joe Points 37343

La date peut être stockée dans une seule colonne sous la forme d'un texte, d'un réel ou d'un int et peut être utilisée avec la fonction intégrée date fonctions.

Documentation :

1.2 Type de données sur la date et l'heure

SQLite n'a pas de classe de stockage définie comme asid et/ou les heures. Au lieu de cela, la classe de stockage intégrée Fonctions de la date et de l'heure o sont capables de stocker des dates et des heures sous forme de valeurs TEXT, REAL ou INTEGER. ou INTEGER :

TEXTE sous forme de chaînes ISO8601 ("YYYY-MM-DD HH:MM:SS.SSS").
VRAI comme nombre de jours julien, le nombre de jours écoulés depuis midi à Greenwich le 24 novembre 4714 avant J.-C., selon le proleptique proleptique du calendrier grégorien.
INTEGER en tant que temps Unix, le nombre de secondes depuis 1970-01-01 00:00:00 UTC. Les applications peuvent choisir de stocker les dates et les heures dans n'importe quel format. dans l'un de ces formats et convertir librement entre les formats à l'aide de l'outil intégré intégrées.

Voici un exemple de sélection de l'âge de l'utilisateur dans la base de données :

-- '2001-01-01' would be the text column where you store the birthdate 
SELECT (strftime('%Y', 'now') - strftime('%Y', '2001-01-01')) - (strftime('%m-%d', 'now') < strftime('%m-%d', '2001-01-01')) AS 'Years'

[reference]

1voto

Sebastian Points 1222

La documentation sqlite à l'adresse http://www.sqlite.org/datatype3.html recommande d'utiliser des chaînes ISO8601. SQLite fournit également quelques fonctions que vous pouvez utiliser dans les requêtes : http://www.sqlite.org/lang_datefunc.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X