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() ).