Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Fonction ADD_MONTHS
ADD_MONTHS ajoute le nombre de mois spécifié à une date, à une valeur d’horodatage ou à une expression. La fonction DATEADD fournit une fonctionnalité similaire.
Syntaxe
ADD_MONTHS( {date | timestamp}, integer)
Arguments
- date | timestamp
-
Colonne de type de données
DATE
ouTIMESTAMP
ou expression implicitement évaluée à un typeDATE
ouTIMESTAMP
. Si la date est le dernier jour du mois, ou si le mois résultant est plus court, la fonction renvoie le dernier jour du mois dans le résultat. Pour les autres dates, le résultat contient le même nombre de jours que l’expression de date. - integer
-
Valeur du type de données
INTEGER
. Utilisez un nombre négatif pour soustraire des mois à partir de dates.
Type de retour
TIMESTAMP
Exemples
La requête suivante utilise la fonction ADD_MONTHS à l’intérieur d’une fonction TRUNC. La fonction TRUNC supprime l’heure du jour des résultats de ADD_MONTHS. La fonction ADD_MONTHS ajoute 12 mois à chaque valeur de la colonne CALDATE. Les valeurs de la colonne CALDATE sont des dates.
select distinct trunc(add_months(caldate, 12)) as calplus12, trunc(caldate) as cal from date order by 1 asc;
calplus12 | cal ------------+------------ 2009-01-01 | 2008-01-01 2009-01-02 | 2008-01-02 2009-01-03 | 2008-01-03 ... (365 rows)
L’exemple suivant utilise la fonction ADD_MONTHS pour ajouter un mois à un timestamp (horodatage).
select add_months('2008-01-01 05:07:30', 1);
add_months --------------------- 2008-02-01 05:07:30
Les exemples suivants illustrent le comportement lorsque la fonction ADD_MONTHS opère sur des dates comportant des mois avec un nombre de jours différent. Cet exemple montre comment la fonction procède pour ajouter un mois au 31 mars et un mois au 30 avril. Sachant que le mois d’avril compte 30 jours, l’ajout d’un mois au 31 mars donne en résultat le 30 avril. En revanche, comme le mois de mai compte 31 jours, l’ajout d’un mois au 30 avril a pour résultat le 31 mai.
select add_months('2008-03-31',1);
add_months --------------------- 2008-04-30 00:00:00
select add_months('2008-04-30',1);
add_months --------------------- 2008-05-31 00:00:00