Dans MySQL, vous pouvez utiliser le TO_DAYS()
fonction pour savoir combien de jours se sont écoulés depuis le jour 0 pour une date précise. Par exemple, vous pouvez transmettre la date d'aujourd'hui à cette fonction, et elle renverra le nombre de jours écoulés depuis le jour 0 .
Cet article contient des exemples à démontrer.
Syntaxe
La syntaxe ressemble à ceci :
TO_DAYS(date)
Où date
est la date à utiliser dans le calcul.
Exemple
Voici un exemple pour illustrer.
SELECT TO_DAYS('1999-12-31');
Résultat :
+-----------------------+ | TO_DAYS('1999-12-31') | +-----------------------+ | 730484 | +-----------------------+
Notez que la documentation MySQL indique que cette fonction n'est pas destinée à être utilisée avec des valeurs qui précèdent l'avènement du calendrier grégorien (1582). En effet, il ne prend pas en compte les jours perdus lors du changement de calendrier.
Exemple 2 - Date actuelle
Voici un exemple utilisant la date actuelle.
SELECT CURDATE(), TO_DAYS(CURDATE());
Résultat :
+------------+--------------------+ | CURDATE() | TO_DAYS(CURDATE()) | +------------+--------------------+ | 2018-06-26 | 737236 | +------------+--------------------+
Tout d'abord, j'utilise le CURDATE()
fonction pour renvoyer la date actuelle, puis je passe cette fonction au TO_DAYS()
fonction pour renvoyer le nombre de jours écoulés depuis le jour 0 .
TO_DAYS() contre FROM_DAYS()
Le FROM_DAYS()
la fonction est l'opposé de TO_DAYS()
, qui, étant donné une date date, renvoie le numéro du jour. Voici un exemple pour illustrer la relation entre ces deux fonctions :
SELECT CURDATE(), TO_DAYS(CURDATE()), FROM_DAYS(TO_DAYS(CURDATE()));
Résultat :
+------------+--------------------+-------------------------------+ | CURDATE() | TO_DAYS(CURDATE()) | FROM_DAYS(TO_DAYS(CURDATE())) | +------------+--------------------+-------------------------------+ | 2018-06-26 | 737236 | 2018-06-26 | +------------+--------------------+-------------------------------+
Donc, dans cet exemple, j'utilise TO_DAYS()
pour renvoyer le nombre de jours à partir de la date actuelle. J'utilise ensuite FROM_DAYS()
pour renvoyer la date à partir de cette valeur (qui, comme prévu, revient à la valeur d'origine de CURDATE()
).