Résumé :dans ce didacticiel, nous allons vous montrer comment travailler avec les valeurs de date et d'heure SQLite et utiliser les fonctions de date et d'heure intégrées pour gérer les valeurs de date et d'heure.
SQLite ne prend pas en charge la classe de stockage de date et/ou d'heure intégrée. Au lieu de cela, il exploite certaines fonctions de date et d'heure intégrées pour utiliser d'autres classes de stockage telles que TEXT
, REAL
, ou INTEGER
pour stocker les valeurs de date et d'heure.
Utiliser le TEXT
classe de stockage pour stocker la date et l'heure SQLite
Si vous utilisez le TEXT
classe de stockage pour stocker la valeur de date et d'heure, vous devez utiliser le format de chaîne ISO8601 comme suit :
YYYY-MM-DD HH:MM:SS.SSS
Code language: SQL (Structured Query Language) (sql)
Par exemple, 2016-01-01 10:20:05.123
Tout d'abord, créez une nouvelle table nommée datetime_text
pour démonstration.
CREATE TABLE datetime_text(
d1 text,
d2 text
);
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Le tableau contient deux colonnes d1
et d2
avec TEXT
type de données.
Pour insérer des valeurs de date et d'heure dans le datetime_text
table, vous utilisez le DATETIME
fonction.
Par exemple, pour obtenir la date et l'heure UTC actuelles, vous transmettez la chaîne désormais littérale à la fonction comme suit :
SELECT datetime('now');
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Pour obtenir l'heure locale, vous passez un argument supplémentaire localtime
.
SELECT datetime('now','localtime');
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Deuxièmement, insérez les valeurs de date et d'heure dans le datetime_text
tableau comme suit :
INSERT INTO datetime_text (d1, d2)
VALUES(datetime('now'),datetime('now', 'localtime'));
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Troisièmement, interrogez les données de datetime_text
tableau.
SELECT
d1,
typeof(d1),
d2,
typeof(d2)
FROM
datetime_text;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Utiliser REAL
classe de stockage pour stocker les valeurs de date et d'heure SQLite
Vous pouvez utiliser le REAL
classe de stockage pour stocker les valeurs de date et/ou d'heure sous forme de nombres de jours juliens, qui est le nombre de jours depuis midi à Greenwich le 24 novembre 4714 av. basé sur le calendrier grégorien proleptique.
Examinons un exemple d'utilisation de la classe de stockage REAL pour stocker des valeurs de date et d'heure.
Tout d'abord, créez une nouvelle table nommée datetime_real
.
CREATE TABLE datetime_real(
d1 real
);
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Deuxièmement, insérez la date et l'heure "actuelles" dans le datetime_real
tableau.
INSERT INTO datetime_real (d1)
VALUES(julianday('now'));
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Nous avons utilisé le julianday()
fonction pour convertir la date et l'heure actuelles en jour julien.
Troisièmement, interrogez les données de datetime_real
tableau.
SELECT d1 FROM datetime_real;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
La sortie n'est pas lisible par l'homme.
Heureusement, vous pouvez utiliser le date()
intégré et time()
pour formater une valeur de date et d'heure comme suit :
SELECT
date(d1),
time(d1)
FROM
datetime_real;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Utiliser INTEGER
pour stocker les valeurs de date et d'heure SQLite
Outre TEXT
et REAL
classes de stockage, vous pouvez utiliser le INTEGER
classe de stockage pour stocker les valeurs de date et d'heure.
Nous utilisons généralement le INTEGER
pour stocker l'heure UNIX qui est le nombre de secondes depuis 1970-01-01 00:00:00 UTC
. Voir l'exemple suivant :
Tout d'abord, créez une table contenant une colonne dont le type de données est INTEGER
pour stocker les valeurs de date et d'heure.
CREATE TABLE datetime_int (d1 int);
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Deuxièmement, insérez la date et l'heure actuelles dans le datetime_int
tableau.
INSERT INTO datetime_int (d1)
VALUES(strftime('%s','now'));
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Troisièmement, interrogez les données de datetime_int
tableau.
SELECT d1 FROM datetime_int;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
C'est un entier.
Pour formater le résultat, vous pouvez utiliser le datetime()
intégré fonctionnent comme suit :
SELECT datetime(d1,'unixepoch')
FROM datetime_int;
Code language: SQL (Structured Query Language) (sql)
Essayez-le
En utilisant SQLite, vous pouvez librement choisir n'importe quel type de données pour stocker les valeurs de date et d'heure et utiliser la fonction de dates et d'heures intégrée pour convertir entre les formats.
Pour des informations détaillées sur les fonctions de dates et d'heures SQLite, consultez les fonctions de dates et d'heures intégrées.
Dans ce tutoriel, vous avez appris à utiliser le TEXT
, REAL
, et INTEGER
classes de stockage pour stocker les valeurs de date et d'heure. De plus, vous avez appris à utiliser les fonctions de date et d'heure intégrées pour convertir les valeurs de date et d'heure stockées dans des formats lisibles.