Fonction ADD_MONTHS - Amazon Redshift

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 ou TIMESTAMP ou expression implicitement évaluée à un type DATE ou TIMESTAMP. 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