MySQL - Opérateur INTERVAL

Salut à toi, futurs magiciens des bases de données ! Aujourd'hui, nous allons entreprendre un voyage passionnant à la découverte de l'opérateur INTERVAL de MySQL. Ne t'inquiète pas si tu es nouveau dans le monde de la programmation – je serai ton guide amical, et nous explorerons ce sujet pas à pas. Alors, prends une tasse de café, et c'est parti !

MySQL - INTERVAL Operator

Qu'est-ce que l'opérateur INTERVAL ?

Avant de rentrer dans les détails, comprehensionnons ce qu'est l'opérateur INTERVAL. Imagine que tu organises une fête et que tu veux savoir quelle date ce sera dans 3 jours. L'opérateur INTERVAL est comme ton assistant personnel voyageur dans le temps dans MySQL, te permettant de réaliser des calculs de date et d'heure avec facilité.

Syntaxe de base

La syntaxe de base de l'opérateur INTERVAL est la suivante :

date_or_datetime + INTERVAL expression unit

ou

date_or_datetime - INTERVAL expression unit

Ici, date_or_datetime est ton point de départ, expression est un nombre, et unit est l'unité de temps (comme DAY, MONTH, YEAR, etc.).

Utilisation de l'opérateur INTERVAL

Commençons par quelques exemples simples pour nous familiariser.

Ajouter des jours à une date

SELECT DATE('2023-05-15') + INTERVAL 5 DAY AS future_date;

Cette requête va retourner :

+-------------+
| future_date |
+-------------+
| 2023-05-20  |
+-------------+

Que se passe-t-il ici ? Nous partons du 15 mai 2023 et ajoutons 5 jours. MySQL fait le calcul pour nous et nous donne le 20 mai 2023. Pretty neat, right?

Soustraire des mois d'une date

SELECT DATE('2023-05-15') - INTERVAL 2 MONTH AS past_date;

Résultat :

+-----------+
| past_date |
+-----------+
| 2023-03-15|
+-----------+

Dans cet exemple, nous voyageons dans le temps ! Nous partons du 15 mai 2023 et reculons de 2 mois, atterrissant le 15 mars 2023.

Exemples plus complexes

Maintenant que nous avons les bases, essayons quelque chose de plus difficile.

Combiner plusieurs intervals

Tu peux utiliser plusieurs expressions INTERVAL dans une seule requête. Imaginons que tu veux connaître la date dans 1 an, 3 mois et 5 jours :

SELECT CURDATE() + INTERVAL 1 YEAR + INTERVAL 3 MONTH + INTERVAL 5 DAY AS future_date;

Cette requête prend la date actuelle (CURDATE()), puis ajoute 1 an, 3 mois et 5 jours. C'est comme planifier une échéance pour un projet à long terme !

Travailler avec le temps

L'opérateur INTERVAL n'est pas seulement pour les dates – il fonctionne aussi avec le temps ! Ajoutons 2 heures et 30 minutes à l'heure actuelle :

SELECT CURTIME() + INTERVAL 2 HOUR + INTERVAL 30 MINUTE AS future_time;

C'est parfait pour calculer quand votre série favorite se terminera ou quand votre pizza livrée devrait arriver !

Applications pratiques

Maintenant, regardons quelques scénarios du monde réel où l'opérateur INTERVAL peut être extrêmement utile.

Calculer des dates d'échéance

Imaginons que vous construisez un système de gestion de bibliothèque. Les livres sont généralement prêtés pour 14 jours. Voici comment vous pourriez calculer la date de rendu :

SELECT
book_title,
checkout_date,
checkout_date + INTERVAL 14 DAY AS due_date
FROM book_loans;

Cette requête vous donnerait une liste de livres, leurs dates de prêt et quand ils doivent être rendus – tout calculé automatiquement !

Dates de renouvellement des abonnements

Si vous travaillez sur un service d'abonnement, vous pourriez avoir besoin de calculer quand chaque abonnement se renouvellera :

SELECT
user_name,
subscription_start,
subscription_start + INTERVAL 1 MONTH AS renewal_date
FROM subscriptions
WHERE subscription_type = 'monthly';

Cette requête vous aide à suivre quand chaque abonnement mensuel se renouvellera.

Utilisation de INTERVAL dans les clauses WHERE

L'opérateur INTERVAL n'est pas seulement pour les instructions SELECT – vous pouvez l'utiliser dans des clauses WHERE aussi !

Trouver des commandes récentes

Disons que vous voulez trouver toutes les commandes passées au cours des derniers 7 jours :

SELECT * FROM orders
WHERE order_date > CURDATE() - INTERVAL 7 DAY;

Cette requête renverra toutes les commandes avec une order_date qui tombe au cours de la semaine dernière.

Identifier des événements à venir

Si vous gérez une base de données d'événements, vous pourriez vouloir trouver tous les événements happening dans les prochains 30 jours :

SELECT * FROM events
WHERE event_date BETWEEN CURDATE() AND CURDATE() + INTERVAL 30 DAY;

Cette requête vous donnera une liste de tous les événements à venir dans le mois suivant.

Unités de l'opérateur INTERVAL

L'opérateur INTERVAL prend en charge diverses unités de temps. Voici un tableau de toutes les unités disponibles :

Unité Description
MICROSECOND Microsecondes (1/1,000,000 d'une seconde)
SECOND Secondes
MINUTE Minutes
HOUR Heures
DAY Jours
WEEK Semaines
MONTH Mois
QUARTER Trimestres (3 mois)
YEAR Ans

Vous pouvez utiliser l'une de ces unités avec l'opérateur INTERVAL pour effectuer des calculs de date et d'heure précis.

Conclusion

Et voilà, les amis ! Nous avons parcouru le pays de l'opérateur INTERVAL de MySQL, depuis les additions et soustractions de base jusqu'aux applications plus complexes du monde réel. Souviens-toi, l'opérateur INTERVAL est comme une machine à temps pour ta base de données – il te permet de voyager vers l'avant ou vers l'arrière dans le temps avec quelques lignes de SQL.

La pratique rend parfait, alors n'ayez pas peur d'expérimenter avec différents intervals et unités. Avant de savoir, vous calculerez les dates et les heures comme un pro !

Bonne programmation, et que vos requêtes reviennent toujours à temps ! ?

Credits: Image by storyset