SQLite, une base de données légère populaire, ne possède pas de fonctionnalité intégrée d’horodatage automatique comme certains autres systèmes de bases de données. Cependant, vous pouvez facilement obtenir une fonctionnalité similaire en utilisant ses fonctions et types de données intégrés. Ce guide montrera comment ajouter, récupérer et gérer les horodatages dans votre base de données SQLite.
Table des matières
- Ajouter des horodatages à votre base de données SQLite
- Utiliser le type de données DATETIME
- Récupérer les horodatages
- Travailler avec les fonctions Date et Heure
- Pourquoi éviter le stockage de texte pour les dates et les heures ?
Ajouter des horodatages à votre base de données SQLite
Pour ajouter des horodatages, vous allez créer une table avec une colonne spécifiquement conçue pour le stockage de la date et de l’heure. Le type de données DATETIME
est idéal à cet effet.
CREATE TABLE my_table (
id INTEGER PRIMARY KEY AUTOINCREMENT,
data TEXT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);
Ce code crée une table avec un ID entier auto-incrémenté, un champ texte pour les données et une colonne DATETIME
nommée timestamp
. La clause DEFAULT CURRENT_TIMESTAMP
garantit que chaque nouvelle ligne reçoit automatiquement l’horodatage actuel.
Utiliser le type de données DATETIME
Le type de données DATETIME
de SQLite stocke les dates et les heures au format ISO8601 (AAAA-MM-JJ HH:MM:SS). C’est le moyen le plus efficace de gérer les données de date et d’heure dans SQLite. La fonction CURRENT_TIMESTAMP
est essentielle pour remplir automatiquement la colonne d’horodatage.
Récupérer les horodatages
Récupérer les horodatages est simple en utilisant une instruction SELECT
standard :
SELECT * FROM my_table;
Cela renverra toutes les colonnes, y compris la colonne timestamp
, pour chaque ligne de la table.
Travailler avec les fonctions Date et Heure
SQLite offre une gamme de fonctions pour manipuler les dates et les heures. Voici quelques-unes des plus utiles :
CURRENT_TIMESTAMP
: Renvoie la date et l’heure actuelles.STRFTIME('%Y-%m-%d %H:%M:%S', timestamp)
: Formate un horodatage dans une représentation de chaîne spécifique.DATE(timestamp)
: Extrait la partie date d’une valeur de date et d’heure.TIME(timestamp)
: Extrait la partie heure d’une valeur de date et d’heure.JULIANDAY(timestamp)
: Convertit une valeur de date et d’heure en un nombre de jour julien.
Pourquoi éviter le stockage de texte pour les dates et les heures ?
Le stockage des dates et des heures sous forme de texte est fortement déconseillé. Cela entraîne plusieurs problèmes :
- Comparaison inefficace : Comparer les représentations textuelles est plus lent que comparer les représentations numériques.
- Problèmes d’intégrité des données : Des formats de texte incohérents peuvent entraîner des erreurs.
- Fonctionnalité limitée : Vous ne pouvez pas utiliser directement les fonctions de date et d’heure de SQLite sur les données stockées sous forme de texte.
Utilisez toujours le type de données DATETIME
pour des performances et une intégrité des données optimales.