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

Fonctionnement de la fonction JulianDay() dans SQLite

Le SQLite julianday() renvoie le nombre de jours depuis midi à Greenwich le 24 novembre 4714 av. (en utilisant le calendrier proleptique grégorien).

Si vous utilisez le calendrier julien proleptique, c'est le lundi 1er janvier 4713 av. J.-C.

Le jour julien est le décompte continu des jours depuis le début de la période julienne. Il est généralement utilisé par les astronomes, les logiciels, etc. pour calculer les jours écoulés entre deux événements.

Pour utiliser cette fonction, vous devez fournir une chaîne d'heure, ainsi que tous les modificateurs (facultatifs). Un modificateur vous permet de modifier la date, comme ajouter un nombre de jours, la régler sur l'heure locale, etc

Syntaxe

La syntaxe ressemble à ceci :

julianday(timestring, modifier, modifier, ...)

La timestring l'argument doit être une chaîne de temps valide.

Le modifier les arguments sont facultatifs. Vous pouvez fournir un ou plusieurs modificateurs. Si vous fournissez un modificateur, il doit s'agir d'un modificateur valide.

Exemple

Voici un exemple pour démontrer le julianday() fonction utilisée avec un argument.

SELECT julianday('now');

Résultat :

2458968.52391635

Le now la chaîne d'heure est convertie en jour julien.

Ajouter un modificateur

Nous pouvons modifier le résultat précédent en utilisant un modificateur. Voici un exemple.

SELECT julianday('now', '+3 hours');

Résultat :

2458968.65149612

Modificateurs multiples

Comme mentionné, vous pouvez ajouter un ou plusieurs modificateurs. Voici un exemple d'ajout d'un autre modificateur à l'exemple précédent.

SELECT julianday('now', '+3 hours', 'localtime');

Résultat :

2458969.0685371 

julianday() contre strftime()

Le julianday() la fonction renvoie exactement le même résultat que strftime('%J', ...) Retour. Le julianday() est juste un moyen plus pratique de le faire.

SELECT 
  julianday('now'),
  strftime('%J', 'now');

Résultat :

julianday('now')  strftime('%J', 'now')
----------------  ---------------------
2458968.52807836  2458968.528078356    

Plage de dates

Comme avec toutes les fonctions de date et d'heure SQLite, julianday() ne fonctionne que pour les dates entre 0000-01-01 00:00:00 et 9999-12-31 23:59:59 (julian Day numéros 1721059.5 à 5373484.5).

Pour les dates en dehors de cette plage, les résultats ne sont pas définis.