Explication détaillée de la manière d’ajouter ou de soustraire des dates en SQL

SQL est une compétence de base pour manipuler des bases de données, et l’ajout ou la soustraction de dates est l’une des opérations fréquemment requises. Cet article se concentre sur la manipulation des dates en SQL, expliquant en détail des syntaxes de base aux exemples pratiques. Cela permettra de gérer plus facilement les données de dates dans les tâches professionnelles.

Sommaire

Syntaxe de base pour l’ajout de dates en SQL

En SQL, des fonctions et des syntaxes standard sont utilisées pour ajouter des jours ou des mois à une date. Cela permet d’ajouter une période spécifique à une date donnée.

Syntaxe de base de la fonction DATEADD

Nous vous présentons ici comment ajouter une période spécifique à une date à l’aide de la fonction DATEADD, couramment utilisée dans les bases de données telles que SQL Server.

-- Syntaxe de base de la fonction DATEADD
DATEADD(unité, valeur, date_de_base)

Exemple de fonction DATEADD

Dans l’exemple suivant, 10 jours sont ajoutés au 1er janvier 2024.

SELECT DATEADD(DAY, 10, '2024-01-01') AS résultat_ajout;

Le résultat sera le 11 janvier 2024.

Ajout de dates avec INTERVAL

Voici comment ajouter des dates à l’aide d’INTERVAL, utilisé dans MySQL, par exemple.

-- Ajout de dates avec INTERVAL
SELECT '2024-01-01' + INTERVAL 10 DAY AS résultat_ajout;

Ce résultat sera également le 11 janvier 2024.

Comprendre ces syntaxes de base facilitera la manipulation des dates. Ensuite, nous expliquerons la soustraction des dates.

Syntaxe de base pour la soustraction de dates en SQL

En SQL, il est souvent nécessaire de soustraire des jours ou des mois d’une date. Voici comment utiliser les fonctions et les syntaxes standard pour soustraire des dates.

Soustraction de dates avec la fonction DATEADD

Dans les bases de données telles que SQL Server, vous pouvez utiliser la fonction DATEADD pour soustraire une période spécifique d’une date. Pour soustraire, spécifiez une valeur négative.

-- Soustraction de dates avec la fonction DATEADD
DATEADD(unité, valeur, date_de_base)

Exemple de fonction DATEADD

Dans l’exemple suivant, 10 jours sont soustraits du 10 janvier 2024.

SELECT DATEADD(DAY, -10, '2024-01-10') AS résultat_soustraction;

Le résultat sera le 31 décembre 2023.

Soustraction de dates avec INTERVAL

Dans les bases de données telles que MySQL, vous pouvez utiliser INTERVAL pour soustraire une période spécifique d’une date.

-- Soustraction de dates avec INTERVAL
SELECT '2024-01-10' - INTERVAL 10 DAY AS résultat_soustraction;

Ce résultat sera également le 31 décembre 2023.

Comme pour l’ajout de dates, la soustraction est facile à réaliser. Ensuite, nous expliquerons en détail comment utiliser la fonction DATEADD.

Comment utiliser la fonction DATEADD

La fonction DATEADD est très utile pour manipuler des dates dans des bases de données telles que SQL Server. Vous pouvez ajouter ou soustraire des jours, des mois, des années, etc., à une date spécifique.

Syntaxe de la fonction DATEADD

La syntaxe de base de la fonction DATEADD est la suivante.

DATEADD(unité, valeur, date_de_base)
  • unité : L’unité de temps à ajouter ou à soustraire. Par exemple, DAY, MONTH, YEAR, etc.
  • valeur : La quantité à ajouter ou à soustraire. Une valeur positive pour ajouter, et une valeur négative pour soustraire.
  • date_de_base : La date de référence à partir de laquelle l’opération sera effectuée.

Exemples concrets de la fonction DATEADD

Ajout de jours

Dans l’exemple suivant, 30 jours sont ajoutés au 1er janvier 2024.

SELECT DATEADD(DAY, 30, '2024-01-01') AS résultat_ajout;

Le résultat sera le 31 janvier 2024.

Ajout de mois

Dans l’exemple suivant, 3 mois sont ajoutés au 1er janvier 2024.

SELECT DATEADD(MONTH, 3, '2024-01-01') AS résultat_ajout;

Le résultat sera le 1er avril 2024.

Ajout d’années

Dans l’exemple suivant, 5 ans sont ajoutés au 1er janvier 2024.

SELECT DATEADD(YEAR, 5, '2024-01-01') AS résultat_ajout;

Le résultat sera le 1er janvier 2029.

Exemples avancés de la fonction DATEADD

Obtenir la fin du mois précédent

La requête suivante permet d’obtenir la fin du mois précédent à partir d’une date spécifique.

SELECT DATEADD(MONTH, -1, DATEADD(DAY, -DAY('2024-02-15'), '2024-02-15')) AS fin_du_mois_précédent;

Le résultat sera le 31 janvier 2024.

En utilisant la fonction DATEADD, il est facile d’effectuer des opérations complexes sur les dates. Ensuite, nous expliquerons comment calculer les différences de dates à l’aide de la fonction DATEDIFF.

Calcul des différences de dates avec la fonction DATEDIFF

La fonction DATEDIFF est utilisée pour calculer la différence entre deux dates dans des bases de données telles que SQL Server. Vous pouvez calculer la différence en jours, mois, années, etc.

Syntaxe de la fonction DATEDIFF

La syntaxe de base de la fonction DATEDIFF est la suivante.

DATEDIFF(unité, date_début, date_fin)
  • unité : L’unité de temps pour laquelle la différence sera calculée. Par exemple, DAY, MONTH, YEAR, etc.
  • date_début : La date de début pour le calcul.
  • date_fin : La date de fin pour le calcul.

Exemples concrets de la fonction DATEDIFF

Calculer la différence en jours

Dans l’exemple suivant, nous calculons la différence en jours entre le 1er janvier 2024 et le 31 janvier 2024.

SELECT DATEDIFF(DAY, '2024-01-01', '2024-01-31') AS différence_en_jours;

Le résultat sera de 30 jours.

Calculer la différence en mois

Dans l’exemple suivant, nous calculons la différence en mois entre le 1er janvier 2024 et le 1er avril 2024.

SELECT DATEDIFF(MONTH, '2024-01-01', '2024-04-01') AS différence_en_mois;

Le résultat sera de 3 mois.

Calculer la différence en années

Dans l’exemple suivant, nous calculons la différence en années entre le 1er janvier 2020 et le 1er janvier 2024.

SELECT DATEDIFF(YEAR, '2020-01-01', '2024-01-01') AS différence_en_années;

Le résultat sera de 4 ans.

Exemples avancés de la fonction DATEDIFF

Calculer l’âge à partir d’une date de naissance

La requête suivante calcule l’âge actuel à partir d’une date de naissance donnée.

SELECT DATEDIFF(YEAR, '1990-05-15', GETDATE()) AS âge;

La fonction GETDATE() renvoie la date actuelle. Cet exemple calcule l’âge d’une personne née le 15 mai 1990.

En utilisant la fonction DATEDIFF, il est facile de calculer la différence entre deux dates. Ensuite, nous présenterons quelques exemples pratiques de manipulation de dates.

Exemples pratiques de manipulation de dates

Dans le cadre professionnel, la manipulation de dates est nécessaire dans divers scénarios. Voici quelques exemples pratiques de manipulation de dates.

Exemple 1 : Obtenir le premier jour du mois suivant

Voici comment obtenir le premier jour du mois suivant à partir d’une date spécifique.

SELECT DATEADD(MONTH, 1, DATEADD(DAY, 1 - DAY('2024-01-15'), '2024-01-15')) AS premier_jour_du_mois_suivant;

Le résultat sera le 1er février 2024.

Exemple 2 : Obtenir la date d’il y a un an à partir de la date actuelle

Voici comment calculer la date d’il y a un an à partir de la date actuelle.

SELECT DATEADD(YEAR, -1, GETDATE()) AS date_d'il_y_a_un_an;

La fonction GETDATE() renvoie la date actuelle, et une année est soustraite de celle-ci.

Exemple 3 : Extraire des données appartenant à une période spécifique

Voici comment extraire des données appartenant à une période spécifique entre une date de début et une date de fin.

SELECT *
FROM table_de_données
WHERE colonne_date BETWEEN '2024-01-01' AND '2024-12-31';

Cette requête extrait les données qui appartiennent aux dates du 1er janvier 2024 au 31 décembre 2024.

Exemple 4 : Calculer le temps de traitement moyen

Voici comment calculer le temps de traitement moyen à partir des dates de début et de fin de plusieurs processus.

SELECT AVG(DATEDIFF(DAY, date_début, date_fin)) AS temps_de_traitement_moyen
FROM table_des_processus;

Cette requête calcule la différence en jours entre les dates de début et de fin et en obtient la moyenne.

Exemple 5 : Obtenir le jour de la semaine

Voici comment obtenir le jour de la semaine d’une date spécifique.

SELECT DATENAME(WEEKDAY, '2024-01-01') AS jour_de_la_semaine;

Ce résultat renvoie le jour de la semaine pour le 1er janvier 2024 (ex : Lundi).

En comprenant ces exemples pratiques, vous pouvez approfondir votre compréhension de la manipulation des dates et acquérir des compétences que vous pouvez appliquer dans des scénarios professionnels réels. Ensuite, nous expliquerons comment calculer la fin de mois.

Exemple avancé : Calcul de la fin du mois

Dans les affaires, il y a souvent des situations où il est nécessaire de calculer la fin du mois. Voici comment obtenir la date de fin de mois en SQL.

Comment obtenir la fin du mois

Pour obtenir la fin du mois, une méthode courante consiste à soustraire un jour au premier jour du mois suivant.

Exemple avec SQL Server

Dans SQL Server, vous pouvez utiliser les fonctions DATEADD et EOMONTH pour obtenir la fin du mois.

-- Obtenir la fin du mois en utilisant la fonction EOMONTH
SELECT EOMONTH('2024-01-15') AS fin_du_mois;

Le résultat sera le 31 janvier 2024.

Exemple avec MySQL

Dans MySQL, vous pouvez utiliser la fonction LAST_DAY pour obtenir la fin du mois.

-- Obtenir la fin du mois en utilisant la fonction LAST_DAY
SELECT LAST_DAY('2024-01-15') AS fin_du_mois;

Ce résultat sera également le 31 janvier 2024.

Une autre méthode de calcul de la fin du mois

Une autre méthode pour calculer la fin du mois consiste à combiner les fonctions DATEADD et DAY.

Une autre méthode de calcul dans SQL Server

Dans l’exemple suivant, la fin du mois est calculée en soustrayant un jour au premier jour du mois suivant.

-- Calcul de la fin du mois en utilisant les fonctions DATEADD et DAY
SELECT DATEADD(DAY, -DAY(DATEADD(MONTH, 1, '2024-01-15')), DATEADD(MONTH, 1, '2024-01-15')) AS fin_du_mois;

Ce résultat sera également le 31 janvier 2024.

Exemples d’application pour la fin du mois

Calcul de la date de clôture de facturation

Pour définir la date de clôture d’une facture à la fin du mois, procédez comme suit.

-- Définir la date de clôture de facturation à la fin du mois
SELECT LAST_DAY('2024-01-15') AS date_de_clôture;

Cela vous permet d’obtenir la fin du mois à partir de la date du mois spécifiée comme date de clôture.

En utilisant ces méthodes, le calcul de la fin du mois devient plus facile dans le cadre des affaires. Ensuite, approfondissons notre compréhension par le biais d’exercices sur l’ajout et la soustraction de dates.

Exercices

Approfondissons notre compréhension avec des exercices sur l’ajout et la soustraction de dates. Résolvez les problèmes ci-dessous et utilisez SQL pour vérifier vos réponses.

Problème 1 : Ajout de dates

Créez une requête SQL qui ajoute 15 jours à une date spécifique.

-- Requête pour le problème 1
SELECT DATEADD(DAY, 15, '2024-06-01') AS résultat_ajout;

Quel sera le résultat de cette requête ?

Problème 2 : Soustraction de dates

Créez une requête SQL qui soustrait 30 jours d’une date spécifique.

-- Requête pour le problème 2
SELECT DATEADD(DAY, -30, '2024-06-01') AS résultat_soustraction;

Quel sera le résultat de cette requête ?

Problème 3 : Calculer la différence de dates

Créez une requête SQL qui calcule la différence en jours entre le 1er janvier 2024 et le 31 décembre 2024.

-- Requête pour le problème 3
SELECT DATEDIFF(DAY, '2024-01-01', '2024-12-31') AS différence_en_jours;

Quel sera le nombre de jours pour cette requête ?

Problème 4 : Obtenir le premier jour du mois suivant

Créez une requête SQL qui obtient le premier jour du mois suivant à partir d’une date spécifique.

-- Requête pour le problème 4
SELECT DATEADD(MONTH, 1, DATEADD(DAY, 1 - DAY('2024-06-15'), '2024-06-15')) AS premier_jour_du_mois_suivant;

Quel sera le résultat de cette requête ?

Problème 5 : Obtenir la fin du mois

Créez une requête SQL qui obtient la fin du mois pour le 15 juillet 2024.

-- Requête pour le problème 5
SELECT LAST_DAY('2024-07-15') AS fin_du_mois;

Quel sera le résultat de cette requête ?

Problème 6 : Calculer l’âge

Créez une requête SQL qui calcule l’âge actuel d’une personne née le 15 mai 1990.

-- Requête pour le problème 6
SELECT DATEDIFF(YEAR, '1990-05-15', GETDATE()) AS âge;

Quel sera l’âge pour cette requête ?

En résolvant ces problèmes, vous approfondirez votre compréhension de la manipulation des dates en SQL. Ensuite, nous résumerons brièvement les points clés sur la manière d’ajouter et de soustraire des dates en SQL.

Résumé

Voici les points clés à retenir sur la manière d’ajouter et de soustraire des dates en SQL.

Compréhension de la syntaxe de base

Comprendre la syntaxe de base des fonctions DATEADD et INTERVAL pour l’ajout et la soustraction de dates facilite la manipulation des dates.

Utilisation de la fonction DATEADD

En utilisant la fonction DATEADD, vous pouvez ajouter ou soustraire des jours, des mois et des années de manière flexible à une date spécifique. La spécification d’une valeur négative permet également de soustraire.

Calcul de la différence de dates avec la fonction DATEDIFF

En utilisant la fonction DATEDIFF, vous pouvez facilement calculer la différence entre deux dates. Elle est utile dans de nombreux contextes, comme le calcul de l’âge ou du temps de traitement.

Applications pratiques

Obtenir le premier jour du mois suivant, la fin du mois, extraire des données d’une période spécifique, etc., vous permet de manipuler des dates de manière fluide dans des applications professionnelles.

Pratique avec des exercices

En résolvant des exercices, vous pouvez essayer des manipulations de dates en SQL et approfondir votre compréhension.

En utilisant ces connaissances et compétences, vous pouvez améliorer l’efficacité de la manipulation des bases de données. En vous familiarisant avec la manipulation des dates en SQL, vous pouvez élargir vos capacités de gestion et d’analyse des données.

Sommaire