ADD_MONTHS |
Ajout des mois |
|---|---|
| Oracle Database SQL |
Syntaxe
| add_months(date1,n) |
Paramètres
| Nom | Description |
|---|---|
| date1 | Ce paramètre permet d'indiquer la date à traiter. |
| n | Ce paramètre permet d'indiquer le nombre de mois à ajouter à la date. |
Description
Cette fonction permet d'ajouter un nombre de mois spécifié à une date.
Remarques
- Ajoute ou soustrait des mois à une date donnée : La fonction ADD_MONTHS(date1, n) permet d'ajouter ou de soustraire un nombre entier de mois à une date donnée. Si n est positif, la date est avancée de n mois; si n est négatif, elle est reculée du même nombre.
- Prend en compte les variations de durée des mois : La fonction tient compte du nombre variable de jours dans chaque mois. Par exemple, ajouter 1 mois à '31-JAN-2023' retourne '28-FEB-2023' (ou '29-FEB' si année bissextile), car février n'a pas 31 jours.
- Le jour est ajusté automatiquement si nécessaire : Si le jour de la date d'origine n'existe pas dans le mois cible, Oracle ajuste la date au dernier jour valide du mois cible. C'est un comportement important à anticiper dans les calculs de fin de mois.
- Retourne une date de même type que l'entrée : ADD_MONTHS retourne une valeur de type DATE, comme date1. Cela signifie que l'heure, les minutes et les secondes de date1 sont conservées dans le résultat, sauf manipulation supplémentaire.
- Fonction très utilisée dans la gestion des échéances : Cette fonction est fréquemment utilisée pour calculer des échéances, des délais de facturation, des abonnements mensuels ou des périodes glissantes, car elle reflète la logique calendaire humaine plutôt qu'un simple ajout d'un nombre de jours.
- Compatible avec les dates passées et futures : Il est possible d'utiliser ADD_MONTHS avec des dates anciennes, contemporaines ou futures. Oracle gère correctement le calendrier grégorien dans ces cas, tant que les valeurs restent dans l'intervalle de validité du type DATE.
- Sensible au format d'entrée et à la session : Le comportement dépend de la façon dont la date est fournie : littéraux ('01-JAN-2023') ou variables DATE. De plus, le format de sortie peut être influencé par les paramètres de session (NLS_DATE_FORMAT), même si la valeur logique reste correcte.
- Complémentaire d'autres fonctions de manipulation de dates : ADD_MONTHS est souvent utilisée avec des fonctions comme LAST_DAY, TRUNC, MONTHS_BETWEEN ou NEXT_DAY. Par exemple : LAST_DAY(ADD_MONTHS(SYSDATE, 1)) donne le dernier jour du mois suivant.
Exemple
Voici un autre exemple montrant comment ajouter quatre mois à la date spécifié :
- BEGIN
- DBMS_OUTPUT.PUT_LINE(ADD_MONTHS('10-07-2010',4));
- END;
on obtiendra le résultat suivant :
10/11/10Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015