SQLite - Date et heure

SQLite prend en charge cinq fonctions de date et d'heure comme suit -

N ° Sr. Fonction Exemple
1 date (timestring, modificateurs ...) Cela renvoie la date dans ce format: AAAA-MM-JJ
2 heure (timestring, modificateurs ...) Cela renvoie l'heure comme HH: MM: SS
3 datetime (timestring, modificateurs ...) Cela renvoie AAAA-MM-JJ HH: MM: SS
4 julianday (timestring, modificateurs ...) Cela renvoie le nombre de jours depuis midi à Greenwich le 24 novembre 4714 av.
5 strftime (timestring, modificateurs ...) Cela renvoie la date formatée selon la chaîne de format spécifiée comme premier argument formaté selon les formateurs expliqués ci-dessous.

Toutes les cinq fonctions de date et d'heure ci-dessus prennent une chaîne d'heure comme argument. La chaîne de temps est suivie de zéro ou plusieurs modificateurs. La fonction strftime () prend également une chaîne de format comme premier argument. La section suivante vous donnera des détails sur différents types de chaînes de temps et de modificateurs.

Chaînes de temps

Une chaîne d'heure peut être dans l'un des formats suivants -

N ° Sr. Chaîne de temps Exemple
1 AAAA-MM-JJ 30/12/2010
2 AAAA-MM-JJ HH: MM 30/12/2010 12:10
3 AAAA-MM-JJ HH: MM: SS.SSS 30/12/2010 12: 10: 04.100
4 MM-JJ-AAAA HH: MM 30-12-2010 12:10
5 HH: MM 12 h 10
6 AAAA-MM-JJTHH: MM 30/12/2010 12:10
sept HH: MM: SS 12:10:01
8 AAAAMMJJ HHMMSS 20101230 121001
9 maintenant 07/05/2013

Vous pouvez utiliser le "T" comme caractère littéral séparant la date et l'heure.

Modificateurs

La chaîne d'heure peut être suivie de zéro ou plusieurs modificateurs qui modifieront la date et / ou l'heure renvoyées par l'une des cinq fonctions ci-dessus. Les modificateurs sont appliqués de gauche à droite.

Les modificateurs suivants sont disponibles dans SQLite -

  • NNN jours
  • NNN heures
  • NNN minutes
  • NNN.NNNN secondes
  • NNN mois
  • NNN années
  • début de mois
  • début d'année
  • début de journée
  • jour de la semaine N
  • unixepoch
  • localtime
  • utc

Formateurs

SQLite fournit une fonction très pratique strftime()pour formater n'importe quelle date et heure. Vous pouvez utiliser les substitutions suivantes pour mettre en forme votre date et votre heure.

Substitution La description
%ré Jour du mois, 01-31
%F Fractions de seconde, SS.SSS
% H Heure, 00-23
% j Jour de l'année, 001-366
% J Numéro du jour julien, DDDD.DDDD
% m Mois, 00-12
% M Minute, 00-59
% s Secondes depuis 1970-01-01
% S Secondes, 00-59
% w Jour de la semaine, 0-6 (0 est dimanche)
% W Semaine de l'année, 01-53
% Y Année, AAAA
%% % symbole

Exemples

Essayons maintenant divers exemples en utilisant l'invite SQLite. La commande suivante calcule la date actuelle.

sqlite> SELECT date('now');
2013-05-07

La commande suivante calcule le dernier jour du mois en cours.

sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31

La commande suivante calcule la date et l'heure pour un horodatage UNIX donné 1092941466.

sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06

La commande suivante calcule la date et l'heure pour un horodatage UNIX donné 1092941466 et compense votre fuseau horaire local.

sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06

La commande suivante calcule l'horodatage UNIX actuel.

sqlite> SELECT strftime('%s','now');
1393348134

La commande suivante calcule le nombre de jours depuis la signature de la déclaration d'indépendance des États-Unis.

sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023

La commande suivante calcule le nombre de secondes depuis un moment particulier en 2004.

sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572

La commande suivante calcule la date du premier mardi d'octobre de l'année en cours.

sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01

La commande suivante calcule le temps écoulé depuis l'époque UNIX en secondes (comme strftime ('% s', 'now') sauf inclut une partie fractionnaire).

sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598

Pour convertir entre les valeurs d'heure UTC et locale lors du formatage d'une date, utilisez les modificateurs utc ou localtime comme suit -

sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite> SELECT time('12:00', 'utc');
19:00:00