- Catégories :
ADD_MONTHS¶
Ajoute ou soustrait un nombre spécifié de mois à une date ou un horodatage, en préservant les informations de fin de mois.
Syntaxe¶
ADD_MONTHS( <date_or_timestamp_expr> , <num_months_expr> )
Arguments¶
Obligatoire :
date_or_timestamp_expr
Il s’agit de l’expression de date ou d’horodatage à laquelle vous souhaitez ajouter un nombre spécifié de mois.
num_months_expr
C’est le nombre de mois que vous souhaitez ajouter. Cela devrait être un entier. Cela peut être positif ou négatif. Si la valeur est une valeur numérique non entière (par exemple, FLOAT), la valeur sera arrondie au nombre entier le plus proche.
Renvoie¶
Le type de données de la valeur renvoyée est identique à celui du premier paramètre. Par exemple, si l’entrée est une DATE
, la sortie est une DATE
. Si l’entrée est une TIMESTAMP_NTZ
, la sortie est une TIMESTAMP_NTZ
.
Notes sur l’utilisation¶
ADD_MONTHS renvoie des résultats légèrement différents de ceux utilisés par DATEADD avec un composant
MONTH
:Pour ADD_MONTHS et DATEADD, si le mois de résultat a moins de jours que le jour d’origine, le jour de résultat du mois correspond au dernier jour du mois de résultat.
Pour ADD_MONTHS uniquement, si le jour d’origine est le dernier jour du mois, le résultat du jour du mois sera le dernier jour du mois de résultat.
num_months_expr
peut être un entier positif ou négatif pour ajouter ou soustraire des mois, respectivement.
Exemples¶
Ajoutez 2 mois à une date et convertissez la date en un horodatage sans fuseau horaire :
SELECT ADD_MONTHS('2016-05-15'::timestamp_ntz, 2) AS RESULT; +-------------------------+ | RESULT | |-------------------------| | 2016-07-15 00:00:00.000 | +-------------------------+
Démontrez la préservation des informations de fin de mois :
Ajoutez un mois au dernier jour de février 2016 (une année bissextile).
Soustrayez un mois du dernier jour de mai 2016.
SELECT ADD_MONTHS('2016-02-29'::date, 1) AS RESULT; +------------+ | RESULT | |------------| | 2016-03-31 | +------------+SELECT ADD_MONTHS('2016-05-31'::date, -1) AS RESULT; +------------+ | RESULT | |------------| | 2016-04-30 | +------------+