SQLite
 sql >> Base de données >  >> RDS >> SQLite

Date et heure SQLite

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.SSSCode 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.