SQLite a un date()
fonction qui vous permet de renvoyer une valeur de date basée sur une chaîne d'heure et tous les modificateurs.
Il renvoie la date dans ce format :AAAA-MM-JJ
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 de la date()
la fonction se présente comme suit :
date(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 date()
fonction utilisée avec un argument.
SELECT date('now');
Résultat :
2020-04-27
Le now
La chaîne d'heure est convertie en date et heure actuelles. Étant donné que j'utilise le date()
fonction, seule la date est renvoyée.
Ajouter un modificateur
Nous pouvons modifier le résultat précédent en utilisant un modificateur. Voici un exemple.
SELECT date('now', '+6 months');
Résultat :
2020-10-27
Dans ce cas, j'ai ajouté six mois à la date.
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 date('now', '+6 months', 'localtime');
Résultat :
2020-10-28
Dans mon cas, le localtime
modificateur a entraîné l'ajout d'un jour à la date.
La raison pour laquelle il le fait est que le localtime
Le modificateur suppose que la chaîne d'heure fournie est en temps universel coordonné (UTC). Il ajuste ensuite la chaîne d'heure pour qu'elle affiche l'heure locale.
Par conséquent, vous pouvez obtenir un résultat différent en fonction de votre heure locale.
Chaîne littérale comme chaîne d'heure
Les exemples ci-dessus utilisent now
comme chaîne d'heure, mais vous pouvez fournir n'importe quelle chaîne d'heure valide.
Voici quelques autres exemples.
SELECT date('2020-04-27 23:58:57');
Résultat :
2020-04-27
Dans ce cas, il supprime simplement la partie heure de la date.
Le voici à nouveau, mais avec quelques modificateurs.
SELECT date('2020-04-27 23:58:57', 'start of year', '+6 months');
Résultat :
2020-07-01
Dans ce cas, je voulais obtenir la date qui est de 6 mois à compter du début de l'année de la date fournie.
Voici un exemple qui utilise le jour julien comme chaîne d'heure.
SELECT date('2458967.49737293');
Résultat :
2020-04-27
date() contre strftime()
La date()
La fonction renvoie exactement le même résultat que strftime('%Y-%m-%d', ...)
Retour. La date()
est juste un moyen plus pratique de le faire.
SELECT
date('now'),
strftime('%Y-%m-%d', 'now');
Résultat :
date('now') strftime('%Y-%m-%d', 'now') ----------- --------------------------- 2020-04-28 2020-04-28
Plage de dates
Comme avec toutes les fonctions de date et d'heure SQLite, date()
ne fonctionne que pour les dates entre 0000-01-01 00:00:00 et 9999-12-31 23:59:59 (numéros de jour julien 1721059.5 à 5373484.5).
Pour les dates en dehors de cette plage, les résultats ne sont pas définis.